文档库 最新最全的文档下载
当前位置:文档库 › MATLAB环境下16QAM调制及解调仿真程序说明

MATLAB环境下16QAM调制及解调仿真程序说明

MATLAB环境下16QAM调制及解调仿真程序说明
MATLAB环境下16QAM调制及解调仿真程序说明

:Nikey

MATLAB环境下16QAM调制及解调仿真程序说明

一、正交调制及相干解调原理框图

正交调制原理框图

相干解调原理框图

二、MQAM调制介绍及本仿真程序的几点说明

MQAM可以用正交调制的方法产生,本仿真中取M=16,即幅度和相位相结合的

16个信号点的调制。

为了观察信道噪声对该调制方式的影响,我们在已调信号中又加入了不同强度的高斯白噪声,并统计其译码误码率。

为了简化程序和得到可靠的误码率,我们在解调时并未从已调信号中恢复载波,而是直接产生与调制时一模一样的载波来进行信号解调。

三、仿真结果图

附源程序代码:

main_plot.m

clear;clc;echo off;close all;

N=10000; %设定码元数量

fb=1; %基带信号频率

fs=32; %抽样频率

fc=4; %载波频率,为便于观察已调信号,我们把载波频率设的较低Kbase=2; % Kbase=1,不经基带成形滤波,直接调制;

% Kbase=2,基带经成形滤波器滤波后,再进行调制

info=random_binary(N); %产生二进制信号序列

[y,I,Q]=qam(info,Kbase,fs,fb,fc); %对基带信号进行16QAM调制

y1=y; y2=y; %备份信号,供后续仿真用

T=length(info)/fb; m=fs/fb; nn=length(info);

dt=1/fs; t=0:dt:T-dt;

subplot(211);

%便于观察,这里显示的已调信号及其频谱均为无噪声干扰的理想情况

%由于测试信元数量为10000个,在这里我们只显示其总数的1/10

plot(t(1:1000),y(1:1000),t(1:1000),I(1:1000),t(1:1000),Q(1:1000),[0 35],[0 0],'b:');

title('已调信号(In:red,Qn:green)');

%傅里叶变换,求出已调信号的频谱

n=length(y); y=fft(y)/n; y=abs(y(1:fix(n/2)))*2;

q=find(y<1e-04); y(q)=1e-04; y=20*log10(y);

f1=m/n; f=0:f1:(length(y)-1)*f1;

subplot(223);

plot(f,y,'r');

grid on;

title('已调信号频谱'); xlabel('f/fb');

%画出16QAM调制方式对应的星座图

subplot(224);

constel(y1,fs,fb,fc); title('星座图');

SNR_in_dB=8:2:24; %AWGN信道信噪比

for j=1:length(SNR_in_dB)

y_add_noise=awgn(y2,SNR_in_dB(j)); %加入不同强度的高斯白噪声

y_output=qamdet(y_add_noise,fs,fb,fc); %对已调信号进行解调

numoferr=0;

for i=1:N

if (y_output(i)~=info(i)),

numoferr=numoferr+1;

end;

end;

Pe(j)=numoferr/N; %统计误码率

end;

figure;

semilogy(SNR_in_dB,Pe,'red*-');

grid on;

xlabel('SNR in dB');

ylabel('Pe');

title('16QAM调制在不同信道噪声强度下的误码率');

random_binary.m

%产生二进制信源随机序列

function [info]=random_binary(N)

if nargin == 0, %如果没有输入参数,则指定信息序列为10000个码元N=10000;

end;

for i=1:N,

temp=rand;

if (temp<0.5),

info(i)=0; % 1/2的概率输出为0

else

info(i)=1; % 1/2的概率输出为1

end

end;

qam.m

function [y,I,Q]=qam(x,Kbase,fs,fb,fc);

%

T=length(x)/fb; m=fs/fb; nn=length(x);

dt=1/fs; t=0:dt:T-dt;

%串/并变换分离出I分量、Q分量,然后再分别进行电平映射

I=x(1:2:nn-1); [I,In]=two2four(I,4*m);

Q=x(2:2:nn); [Q,Qn]=two2four(Q,4*m);

if Kbase==2; %基带成形滤波

I=bshape(I,fs,fb/4); Q=bshape(Q,fs,fb/4);

end;

y=I.*cos(2*pi*fc*t)-Q.*sin(2*pi*fc*t); %调制

qamdet.m

%QAM信号解调

function [xn,x]=qamdet(y,fs,fb,fc);

dt=1/fs; t=0:dt:(length(y)-1)*dt;

I=y.*cos(2*pi*fc*t);

Q=-y.*sin(2*pi*fc*t);

[b,a]=butter(2,2*fb/fs); %设计巴特沃斯滤波器

I=filtfilt(b,a,I);

Q=filtfilt(b,a,Q);

m=4*fs/fb; N=length(y)/m; n=(.6:1:N)*m; n=fix(n);

In=I(n); Qn=Q(n); xn=four2two([In Qn]);

%I分量Q分量并/串转换,最终恢复成码元序列xn

nn=length(xn); xn=[xn(1:nn/2);xn(nn/2+1:nn)];

xn=xn(:); xn=xn';

bshape.m

%基带升余弦成形滤波器

function y=bshape(x,fs,fb,N,alfa,delay);

%设置默认参数

if nargin<6; delay=8; end;

if nargin<5; alfa=0.5; end;

if nargin<4; N=16; end;

b=firrcos(N,fb,2*alfa*fb,fs);

y=filter(b,1,x);

two2four.m

%二进制转换成四进制

function [y,yn]=two2four(x,m);

T=[0 1;3 2]; n=length(x); ii=1;

for i=1:2:n-1;

xi=x(i:i+1)+1;

yn(ii)=T(xi(1),xi(2));

ii=ii+1;

end;

yn=yn-1.5; y=yn;

for i=1:m-1;

y=[y;yn];

end;

y=y(:)'; %映射电平分别为-1.5;0.5;0.5;1.5

four2two.m

%四进制转换成二进制

function xn=four2two(yn);

y=yn; ymin=min(y); ymax=max(y); ymax=max([ymax abs(ymin)]); ymin=-abs(ymax); yn=(y-ymin)*3/(ymax-ymin);

%设置门限电平,判决

I0=find(yn< 0.5); yn(I0)=zeros(size(I0));

I1=find(yn>=0.5 & yn<1.5); y n(I1)=ones(size(I1));

I2=find(yn>=1.5 & yn<2.5); y n(I2)=ones(size(I2))*2;

I3=find(yn>=2.5); yn(I3)=ones(size(I3))*3; %一位四进制码元转换为两位二进制码元

T=[0 0;0 1;1 1;1 0]; n=length(yn);

for i=1:n;

xn(i,:)=T(yn(i)+1,:);

end;

xn=xn'; xn=xn(:); xn=xn';

constel.m

%画出星座图

function c=constel(x,fs,fb,fc);

N=length(x); m=2*fs/fb; n=fs/fc;

i1=m-n; i=1; ph0=(i1-1)*2*pi/n;

while i <= N/m;

xi=x(i1:i1+n-1);

y=2*fft(xi)/n; c(i)=y(2);

i=i+1; i1=i1+m;

end;

%如果无输出,则作图

if nargout<1;

cmax=max(abs(c));

ph=(0:5:360)*pi/180;

plot(1.414*cos(ph),1.414*sin(ph),'c');

hold on;

for i=1:length(c);

ph=ph0-angle(c(i));

a=abs(c(i))/cmax*1.414;

plot(a*cos(ph),a*sin(ph),'r*');

end;

plot([-1.5 1.5],[0 0],'k:',[0 0],[-1.5 1.5],'k:');

hold off; axis equal; axis([-1.5 1.5 -1.5 1.5]); end;

基于MATLAB的FSK调制解调实现完整版

目录 一. FSK理论知识………………………………………………… 1.1FSK概念………………………………………………………………… 1.22FSK信号的波形及时间表示式………………………………………… 1.32FSK信号的产生方法…………………………………………………… 1.42FSK信号的功率谱密度………………………………………………… 1.52FSK信号的解调………………………………………………………… 1.6FSK的误码性能…………………………………………………………… 二.用MATLAB进行FSK原理及误码性能仿真……… 三、结论…………………………………………… 四、参考文献…………………………………………、 五、源程序……………………………………………

1、FSK理论知识 频率调制的最简单形式是二进制频率键控(FSK,frequency-shift keying)。FSK是调制解调器通过电话线路发送比特的方法。每个比特被转换为一个频率,0由较低的频率表示,1由较高的频率表示。 1.1、FSK概念 传“0”信号时,发送频率为f1的载波; 传“1”信号时,发送频率为f2的载波。可见,FSK是用不同频率的载波来传递数字消息的。 实现模型如下图: 1.2、2FSK信号的波形及时间表示式 根据上图模型的实现可以得到2FSK的信号波形如图:

2FSK信号的时间表达式为: 由以上表达式可见,2FSK信号由两个2ASK信号相加构成。 注意:2FSK有两种形式: (1)相位连续的2FSK; (2)相位不连续的2FSK。 在这里,我们只讨论相位不连续的频移键控信号,这样更具有普遍性。 1.3、2FSK信号的产生方法 2FSK信号的产生方法:2FSK信号可以两类方法来产生。 一是采用模拟调频的方法来产生(图1);另一种方法是采用键控法(图2); 图1.3-1 图1.3-2 1.4、2FSK信号的功率谱密度

matlab,isrgb函数源代码

function y = isrgb(x) %ISRGB Return true for RGB image. % FLAG = ISRGB(A) returns 1 if A is an RGB truecolor image and % 0 otherwise. % % ISRGB uses these criteria to determine if A is an RGB image: % % - If A is of class double, all values must be in the range % [0,1], and A must be M-by-N-by-3. % % - If A is of class uint8 or uint16, A must be M-by-N-by-3. % % Note that a four-dimensional array that contains multiple RGB % images returns 0, not 1. % % Class Support % ------------- % A can be of class uint8, uint16, or double. If A is of % class logical it is considered not to be RGB. % % See also ISBW, ISGRAY, ISIND. % Copyright 1993-2003 The MathWorks, Inc. % $Revision: 1.15.4.2 $ $Date: 2003/08/23 05:52:55 $ wid = sprintf('Images:%s:obsoleteFunction',mfilename); str1= sprintf('%s is obsolete and may be removed in the future.',mfilename); str2 = 'See product release notes for more information.'; warning(wid,'%s\n%s',str1,str2); y = size(x,3)==3; if y if isa(x, 'logical') y = false; elseif isa(x, 'double') % At first just test a small chunk to get a possible quick negative m = size(x,1); n = size(x,2); chunk = x(1:min(m,10),1:min(n,10),:); y = (min(chunk(:))>=0 && max(chunk(:))<=1); % If the chunk is an RGB image, test the whole image

基于MATLAB SIMULINK的FM调制解调

摘要 在模拟通信系统中,由模拟信源产生的携带有信息的消息经过传感器转换成电信号。模拟基带信号在经过调制将低通频谱搬移到载波频率上适应信道,最终解调还原成电信号。本文应用了频率调制法产生调制解调信号。本论文中主要通过对SIMULINK工具箱的学习和使用,利用其丰富的模板以及本科对通信原理知识的掌握,完成了FM信号的调制与解调,以及用SIMULINK进行设计和仿真。首先利用简单的正玄波信号发生器作为信源,对模拟信号进行FM调制解调原理的仿真。 关键词:调制解调;FM ;MATLAB;SIMULINK仿真

Abstract In the simulation of communication systems, generated by the analog source carrying a message through the sensor into electrical signals. Analog baseband signal after the modul- -ation of the low pass spectrum to carrier frequency to adapt to the channel, the final reducti- -on into electrical signal demodulation. This paper applied the frequency modulation method to generate the signal modulation and demodulation. Mainly through the study and use of SIMULINK toolbox in this thesis, with its rich template and undergraduate course on comm--unication theory knowledge,the modulation and demodulation of FM signal, as well as the design and simulation with SIMULINK. Firstly, sine wave signal generator is simple as the source, simulation FM modulation anddemodulation principle of analogue signals. Then, using the song as the source. Keywords: modulation and demodulation;FM; MATLAB; SIMULINK simulation

matlab代码大全

MATLAB主要命令汇总 MATLAB函数参考 附录1.1 管理用命令 函数名功能描述函数名功能描述 addpath 增加一条搜索路径 rmpath 删除一条搜索路径 demo 运行Matlab演示程序 type 列出.M文件 doc 装入超文本文档 version 显示Matlab的版本号 help 启动联机帮助 what 列出当前目录下的有关文件 lasterr 显示最后一条信息 whatsnew 显示Matlab的新特性 lookfor 搜索关键词的帮助 which 造出函数与文件所在的目录 path 设置或查询Matlab路径 附录1.2管理变量与工作空间用命令 函数名功能描述函数名功能描述 clear 删除内存中的变量与函数 pack 整理工作空间内存 disp 显示矩阵与文本 save 将工作空间中的变量存盘 length 查询向量的维数 size 查询矩阵的维数 load 从文件中装入数据 who,whos 列出工作空间中的变量名 附录1.3文件与操作系统处理命令 函数名功能描述函数名功能描述 cd 改变当前工作目录 edit 编辑.M文件 delete 删除文件 matlabroot 获得Matlab的安装根目录 diary 将Matlab运行命令存盘 tempdir 获得系统的缓存目录 dir 列出当前目录的内容 tempname 获得一个缓存(temp)文件 ! 执行操作系统命令 附录1.4窗口控制命令 函数名功能描述函数名功能描述 echo 显示文件中的Matlab中的命令 more 控制命令窗口的输出页面format 设置输出格式 附录1.5启动与退出命令 函数名功能描述函数名功能描述 matlabrc 启动主程序 quit 退出Matlab环境 startup Matlab自启动程序 附录2 运算符号与特殊字符附录 2.1运算符号与特殊字符 函数名功能描述函数名功能描述

基于MATLAB的FSK调制解调1

基于MATLAB的FSK调制解调 学生姓名:段斐指导老师:吴志敏 摘要本课程设计利用MATLAB集成环境下的M文件,编写程序来实现FSK 的调制解调,并绘制出解调前后的时域和频域波形及叠加噪声时解调前后的时频波形,并观察解调前后频谱有何变化以加深对F SK信号解调原理的理解。对信号叠加噪声,并迚行解调,绘制出解调前后信号的时频波形,改变噪声功率迚行解调,根据运行结果和波形来分析该解调过程的正确性及信道对信号传输的影响。完成整个FSK的调制解调过程。程序开发平台为MATLAB7.1,使用其自带的M文件实现。运行平台为Windows 2000。 关键词:程序设计;FSK ;调制解调;MATLAB7.1;M文件 1引言 本课程设计是利用MATLAB集成环境下的M文件,编写程序来实现FSK 的调制解调,并绘制出解调前后的时域和频域波形及叠加噪声时解调前后的时频波形,根据运行结果和波形来分析该解调过程的正确性及信道对信号传输的影响。 1.1课程设计目的 此次课程设计的目的是熟悉MATLAB中M文件的使用方法,编写M文件实现FSK的调制和解调,绘制出FSK信号解调前后在时域和频域中的波形,观察调解前后频谱的变化,再对信号迚行噪声叠加后解调同样绘制解调前后的

信号时频波形,最后改变噪声功率迚行调解,分析噪声对信号传输造成的影响,加深对FSK信号解调原理的理解。 1.2课程设计要求 熟悉MATLAB中M文件的使用方法,并在掌握FSK调制解调原理的基础上,编写出F SK调制解调程序。在M文件环境下运行程序绘制出F SK信号解调前后在时域和频域中的波形,观察波形在解调前后的变化,对其作出解释,同时对信号加入噪声后解调,得到解调后的时频波形,分析噪声对信号传输造成的影响。解释所得到的结果。 1.3课程设计步骤 本课程设计采用M文件编写的方法实现二迚制的FSK的调制与解调,然后在信号中叠加高斯白噪声。一,调用dmode函数实现FSK的解调,并绘制出F SK信号调制前后在时域和频域中的波形,两者比较。二,调用ddemod函数解调,绘制出F SK信号解调前后在时域和频域中的波形,两者比较。三,调用awgn函数在新海中叠加不同信噪比的噪声,绘制在各种噪声下的时域频域图。最后分析结果。 1.4设计平台简介 Matlab是美国MathWorks公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境。是目前最好的科学计算类软件。 作为和Mathematica、Maple并列的三大数学软件。其强项就是其强大的矩阵计算以及仿真能力。Matlab的由来就是Matrix + Laboratory = Matlab,这个软件在国内也被称作《矩阵实验室》。Matlab提供了自己的编译器:全面兼容C++以及Fortran两大语言。Matlab 7.1于2005.9最新发布-完整版,提供了

几种常见窗函数及其MATLAB程序实现

几种常见窗函数及其MATLAB程序实现 2013-12-16 13:58 2296人阅读评论(0) 收藏举报 分类: Matlab(15) 数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。在FFT分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。 泄漏与窗函数频谱的两侧旁瓣有关,对于窗函数的选用总的原则是,要从保持最大信息和消除旁瓣的综合效果出发来考虑问题,尽可能使窗函数频谱中的主瓣宽度应尽量窄,以获得较陡的过渡带;旁瓣衰减应尽量大,以提高阻带的衰减,但通常都不能同时满足这两个要求。 频谱中的如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。信号的加窗处理,重要的问题是在于根据信号的性质和研究目的来选用窗函数。图1是几种常用的窗函数的时域和频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低,如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用矩形窗,例如测量物体的自振频率等;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。表1 是几种常用的窗函数的比较。 如果被测信号是随机或者未知的,或者是一般使用者对窗函数不大了解,要求也不是特别高时,可以选择汉宁窗,因为它的泄漏、波动都较小,并且选择性也较高。但在用于校准时选用平顶窗较好,因为它的通带波动非常小,幅度误差也较小。

基于MATLAB的FSK调制解调 (1)

基于MATLAB的FSK的实验报告 姓 1.1

实现对FSK的MATLAB仿真. 重点研究问题: (1) 对FSK的概念、组成以及性能分析方法有深入的研究; (2) FSK调制与解调的原理及应用MATLAB软件实现仿真的方案. 1.2 FSK信号的调制方法 移频键控(FSK):用数字调制信号的正负控制载波的频率。当数字信号的振幅为正时载波频率为f1,当数字信号的振幅为负时载波频率为 f2。有时也把代表两个以上符号的多进制频率调制称为移频键控。移频键控能区分通路,但抗干扰能力不如移相键控和差分移相键控。他的主要调制方法有以下两种: 方法一: 用一个矩形脉冲序列对一个载波进行调频。 图2-3 2FSK信号的产生(一) 方法二:键控法 图2-4 2FSK信号的产生(二) 键控法是利用矩形脉冲()t b来控制开关电路对两个不同的独立频率源进行选通。

1.3 FSK解调的方法 常见的FSK解调方法有两种:相干解调法与非相干解调法.现在我将对这两种解法。 1.4 设计总思路 如下图所示,我将FSK的调制与FSK的解调独立开作为两个子函数,其中FSK调制的输出即可作为FSK解调的输入信号.最后设计一主函数main将两个子函数同时调用完成整个仿真过程。 图3-1 设计总思路图 2.1 FSK调制的仿真设计 本文主要是对2FSK进行调制,而2FSK可看做是基带信号与载波频率的结合就可.FSK的产生思路参考的是键控法,如图4

图3-2 2FSK信号的产生(二) 2.2 FSK解调的仿真设计 如上图所示的FSK信号的相干检测原理图,FSK信号可以采用两个乘法检测器进行相干检测. 上图中输入信号为2FSK信号加上噪声组成 带通滤波器2的设计类似滤波器1,只是更改频率为fc2就可.

基于MATLAB的ASK调制解调实现

基于MATLAB的ASK调制解调实现

————————————————————————————————作者:————————————————————————————————日期: ?

长沙理工大学 《通信原理》课程设计报告 学院专业 班级学号 学生姓名指导教师 课程成绩完成日期2016年1月8日

课程设计成绩评定 学院专业 班级学号 学生姓名指导教师 课程成绩完成日期2016年1月8日 指导教师对学生在课程设计中的评价 评分项目优良中及格不及格课程设计中的创造性成果 学生掌握课程内容的程度 课程设计完成情况 课程设计动手能力 文字表达 学习态度 规范要求 课程设计论文的质量 指导教师对课程设计的评定意见 综合成绩指导教师签字2016年1月8日

课程设计任务书 城南学院通信工程专业 课程名称通信原理课程设计时间2015/2016学年第一学期17~19 周 学生姓名指导老师 题目基于MATLAB的ASK调制解调实现 主要内容: 利用MATLAB集成环境下的M文件,编写程序来实现ASK的调制解调, 要求采样频率为360HZ,并绘制出解调前后的时域和频域波形及叠加噪声时解 调前后的时频波形,根据运行结果和波形来分析该解调过程的正确性及信道对信 号传输的影响。 要求: 1)熟悉MATLAB中M文件的使用方法,并在掌握ASK调制解调原理 的基础上,编写出ASK调制解调程序。 2)绘制出ASK信号解调前后在时域和频域中的波形,并观察解调前后频谱有何变化以加深对ASK信号解调原理的理解。 3)对信号叠加噪声,并进行解调,绘制出解调前后信号的时频波形,改变噪声功率进行解调,分析噪声对信号传输造成的影响。 4)在老师的指导下,要求独立完成课程设计的全部内容,并按要求编写课 程设计学年论文,能正确阐述和分析设计和实验结果。 应当提交的文件: (1)课程设计学年论文。 (2)课程设计附件。

AM调制解调及matlab仿真程序和图

(1)所用滤波器函数:巴特沃斯滤波器 % 注: wp(或Wp)为通带截止频率 ws(或Ws)为阻带截止频率 Rp为通带衰减 As为阻带衰减 %butterworth低通滤波器原型设计函数要求Ws>Wp>0 As>Rp>0 function [b,a]=afd_butt(Wp,Ws,Rp,As) N=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(Wp/Ws))); %上条语句为求滤波器阶数 N为整数 %ceil 朝正无穷大方向取整 fprintf('\n Butterworth Filter Order=%2.0f\n',N) OmegaC=Wp/((10^(Rp/10)-1)^(1/(2*N))) %求对应于N的3db截止频率 [b,a]=u_buttap(N,OmegaC); (2)傅里叶变换函数 function [Xk]=dft(xn,N) n=[0:1:N-1]; k=[0:1:N-1]; WN=exp(-j*2*pi/N); nk=n'*k; WNnk=WN.^(nk); Xk=xn*WNnk; 设计部分: 1.普通AM调制与解调 %单音普通调幅波调制y=amod(x,t,fs,t0,fc,Vm0,ma)要求fs>2fc %x调制信号,t调制信号自变量,t0采样区间,fs采样频率, %fc载波频率,Vm0输出载波电压振幅,ma调幅度 t0=0.1;fs=12000; fc=1000;Vm0=2.5;ma=0.25; n=-t0/2:1/fs:t0/2; x=4*cos(150*pi*n); %调制信号 y2=Vm0*cos(2*pi*fc*n); %载波信号figure(1) subplot(2,1,1);plot(n,y2); axis([-0.01,0.01,-5,5]); title('载波信号'); N=length(x); Y2=fft(y2); subplot(2,1,2); plot(n,Y2); title('载波信号频谱'); %画出频谱波形y=Vm0*(1+ma*x/Vm0).*cos(2*pi*fc*n); figure(2) subplot(2,1,1);plot(n,x) title('调制信号'); subplot(2,1,2) plot(n,y) title('已调波信号'); X=fft(x);Y=fft(y);

完整word版,msk的调制解调MATLAB源代码

msk的调制解调MATLAB源代码 function out = delay(data,n,sample_number) %data:延迟的数据 %n:延迟码元个数 %sample_number:码元采样个数 out = zeros(1,length(data)); out(n*sample_number+1:length(data)) = data(1:length(data)-n*sample_number); function [data_diff] = difference(data) %差分编码 %************************************************************************* * %data 输入信号 %data_diff 差分编码后信号 %************************************************************************* *

%-------------------------------------------------------------------------- data_diff = zeros(1,length(data)); data_diff(1) = 1 * data(1); %1为差分编码的初始参考值 for i = 2:length(data) data_diff(i) = data_diff(i-1) * data(i); end %************************************************************************* * function [signal_out,I_out,Q_out] = mod_msk(data,data_len,sample_number,Rb) %MSK基带调制 %************************************************************************* * % data 调制信号 % data_len 码元个数 % sample_number 每个码元采样点数

完整的遗传算法函数Matlab程序

完整的遗传算法函数Matlab程序 function [x,endPop,bPop,traceInfo] = ga(bounds,eevalFN,eevalOps,startPop,opts,... termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps) n=nargin; if n<2 | n==6 | n==10 | n==12 disp('Insufficient arguements') end if n<3 %Default eevalation opts. eevalOps=[]; end if n<5 opts = [1e-6 1 0]; end if isempty(opts) opts = [1e-6 1 0]; end if any(eevalFN<48) %Not using a .m file if opts(2)==1 %Float ga e1str=['x=c1; c1(xZomeLength)=', eevalFN ';']; e2str=['x=c2; c2(xZomeLength)=', eevalFN ';']; else %Binary ga e1str=['x=b2f(endPop(j,:),bounds,bits); endPop(j,xZomeLength)=',... eevalFN ';']; end else %Are using a .m file if opts(2)==1 %Float ga e1str=['[c1 c1(xZomeLength)]=' eevalFN '(c1,[gen eevalOps]);']; e2str=['[c2 c2(xZomeLength)]=' eevalFN '(c2,[gen eevalOps]);']; else %Binary ga e1str=['x=b2f(endPop(j,:),bounds,bits);[x v]=' eevalFN ... '(x,[gen eevalOps]); endPop(j,:)=[f2b(x,bounds,bits) v];']; end end if n<6 %Default termination information termOps=[100];

16QAM调制解调(MATLAB)

题目: 基于MATLAB 的16QAM 及32QAM 系统的仿真 原理: QAM 是一种矢量调制,将输入比特映射到一个复平面,形成复数调制信号,然后将I 信号和Q 信号(实部虚部)分量采用幅度调制,分 别对应调制在相互正交的两个载波(cos t ω,sin t ω)上。下图为MQAM 的调制原理图。 MQAM 的信号表达式: ()()( )cos sin 1,2,...,, 0C S C S i i T C i T C S i i s t a g t t a g t t i M t T a a ωω=-=≤≤与 上述表达式可以看出,QAM 为两个正交载波振幅相位调制的结合。波形矢量可以表示为: ()()()11221,2,...,, 0i i i S s t s f t s f t i M t T =+=≤≤

( )()( )()()()()()12110 220 cos ,0sin ,01,2,...,1,2,...,S S T C S T C S T i i T i i f t t t t T f t t t t T s s t f t dt i M s s t f t dt i M ωω=≤≤= ≤≤====?? MQAM 信号最佳接收: 实验仿真条件: 码元数量设定为10000个,基带信号频率1HZ ,抽样频率32HZ ,载波频率4HZ 。 实验结果分析:

对于QAM ,可以看成是由两个相互正交且独立的多电平ASK 信号叠加而成。因此,利用多电平误码率的分析方法,可得到M 进制QAM 的误码率为: ])(1l o g 3[)1 1(0 22n E L L e r f c L P b e -- = 式中,M L =,Eb 为每码元能量,n 0为噪声单边功率谱密度。 通过调整高斯白噪声信道的信噪比SNR (Eb/No ),可以得到如图所示的误码率图: -1-0.50 0.51 1.52 2.5 10 -3 10 -2 10 -1 10 QAM 信号误码率分析 信噪比 误码率

基于MATLAB的ASK调制解调实现

长沙理工大学 《通信原理》课程设计报告 学院专业 班级学号 学生姓名指导教师 课程成绩完成日期2016年1月8日

课程设计成绩评定 学院专业 班级学号 学生姓名指导教师 课程成绩完成日期2016年1月8日指导教师对学生在课程设计中的评价 指导教师对课程设计的评定意见

课程设计任务书 城南学院通信工程专业

基于MATLAB的ASK调制解调实现 学生姓名:指导老师: 摘要MATLAB是美国MathWorks公司生产的一个为科学和工程计算专门设计的交互式大型软件,本课程设计主要内容是利用MATLAB集成环境下的M文件,编写程序来实现ASK的调制解调,要求采样频率为360HZ,并绘制出解调前后的时域和频域波形及叠加噪声时解调前后的时频波形,根据运行结果和波形来分析该解调过程的正确性及信道对信号传输的影响。目的是熟悉MATLAB中M文件的使用方法,并在掌握ASK 调制解调原理的基础上,编写出2ASK调制解调程序,绘制出ASK信号解调前后在时域和频域中的波形,观察解调前后频谱有何变化以及对信号叠加噪声后的变化。最终得到随着输入信号噪声的增加增大,误码越严重的结论,加深对ASK信号解调原理的理解。 关键词ASK调制解调;时域谱;频域谱;高斯白噪声;信噪比 1 引言 通信原理是通信工程专业的一门重要的专业课,是通信工程专业后续专业课的基础,掌握通信原理课程的知识不仅可以打下一个坚实的专业基础,还能提高处理通信系统问题能力和素质。通过本课程设计的ASK振幅键控调制解调,可以进一步理解数字通信的基础理论,有助于加深对通信原理的理解。 1.1课程设计目的 通过设计基于MATLAB的ASK调制解调实现,让我深入理解和掌握二进制ASK 调制解调以及噪声对信号传输的影响[1]。 在通信原理理论知识的基础上加深对ASK调制解调设计原理及实现方法的理解。使我对通信信号波形及频谱有深刻的认识。不仅加强了对课本知识的了解,而且还涉及到了MATLAB编程语言和软件的使用,以及基本的操作常识[2]。 掌握调制解调函数的应用,增强了我动手实践的能力。

MATLAB QPSK调制与解调

实验名称:QPSK调制与解调 一、实验目的: 1、学会QPSK调制与解调系统的构成 2、学会QPSK调制与解调系统的各模块的构建 3、学会误码率与误符号率的统计方法以及Matlab算法 二、实验原理: 1、QPSK:四进制绝对相移键控,也称为多进制数字相位调制,利用载波的四种不同相位状态来表征数字信息的调制方式。 2、QPSK的调制方法有正交调制方式(双路二相调制合成法或直接调相法)、相位选择法、插入脉冲法。 调制与解调系统的构成: 3、各模块的实现方法:

(1)、信源的产生:使用randint(m,n,2) 函数产生一个m 行n 列的随机二进制数列 (2)、QPSK 符号映射 :将产生的0,1比特流按照QPSK 调制方式进行映射,本实验采用π/4 QPSK 的调制方式,图为: (3)、AWGN 信号产生:AWGN 产生器就是产生满足均值为0,方差为1的高斯白噪声。实验中使用randn(m,n)函数产生一个m 行n 列的高斯噪声序列。 (4)、信号幅度控制:根据AWGN 信道模型,接收信号可以分别表示为 α就是当噪声功率归一化为1(0均值,方差为1)时,根据信噪比关系而计算出来的信号平均幅度 I I I r s n α=+Q Q Q r s n α=+22210log 10^10s s n n v SNR SNR v sqrt v v ??????=?=* ? ? ???????

(5)、QPSK 反映射及判决 :对接收到的信号在4种可能的四种信号向量[(1,0), (0,1), (-1,0), (0,-1)]上投影(即进行点积)。投影最大的值所对应的信号向量就是所发送信号的符号值,然后恢复出比特流 (6)、误码率及误符号率统计: 误码率:将检测出来的比特流和发送的原始比特流进行比较,统计出出现错误的比特数 误符号率:将检测出来的比特流变成两组,构成符号,和发送端符号映射后的符号流进行比较,只要符号中任错一bit ,就算该符号出错。统计出现错误的符号数 三、 实验内容: 1、建立QPSK 的Matlab 仿真模型 2、对仿真模型中各个组成部分进行函数设计和功能仿真 randn('seed',10);mark=randn(1,LENGTH); subplot(2,2,1);plot(mark);title('watermarc:Gaussian noise'); 3、成型滤波器的设计 4、带限信道中的QPSK 调制解调 四、实验步骤: 1、开机,设置好本次仿真目录 2、进入matlab 环境,设置工作路径和目录 3、按照实验方法,一步步进行QPSK 各个模块的设计 s v α=

matlab经典代码大全

哈哈哈 MATLAB 显示正炫余炫图:plot(x,y1,'* r',x,y2,'o b') 定义【0,2π】;t=0:pi/10:2*pi; 定义函数文件:function [返回变量列表]=函数名(输入变量列表) 顺序结构:选择结构 1)if-else-end语句 其格式为: if 逻辑表达式 程序模块1; else 程序模块2; End 图片读取:%选择图片路径 [filename, pathname] = ... uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片'); %合成路径+文件名 str=[pathname,filename]; %为什么pathname和filename要前面出现的位置相反才能运行呢???%读取图片 im=imread(str); %使用图片 axes(handles.axes1); %显示图片 imshow(im); 边缘检测: global im str=get(hObject,'string'); axes (handles.axes1); switch str case ' 原图' imshow(im); case 'sobel' BW = edge(rgb2gray(im),'sobel'); imshow(BW); case 'prewitt' BW = edge(rgb2gray(im),'prewitt');

imshow(BW); case 'canny' BW = edge(rgb2gray(im),'canny'); imshow(BW);Canny算子边缘定位精确性和抗噪声能力效果较好,是一个折中方案 end; 开闭运算: se=[1,1,1;1,1,1;1,1,1;1,1,1]; %Structuring Element I=rgb2gray(im); imshow(I,[]);title('Original Image'); I=double(I); [im_height,im_width]=size(I); [se_height,se_width]=size(se); halfheight=floor(se_height/2); halfwidth=floor(se_width/2); [se_origin]=floor((size(se)+1)/2); image_dilation=padarray(I,se_origin,0,'both'); %Image to be used for dilation image_erosion=padarray(I,se_origin,256,'both'); %Image to be used for erosion %%%%%%%%%%%%%%%%%% %%% Dilation %%% %%%%%%%%%%%%%%%%%% for k=se_origin(1)+1:im_height+se_origin(1) for kk=se_origin(2)+1:im_width+se_origin(2) dilated_image(k-se_origin(1),kk-se_origin(2))=max(max(se+image_dilation(k-se_origin(1):k+halfh eight-1,kk-se_origin(2):kk+halfwidth-1))); end end figure;imshow(dilated_image,[]);title('Image after Dilation'); %%%%%%%%%%%%%%%%% %%% Erosion %%% %%%%%%%%%%%%%%%%% se=se'; for k=se_origin(2)+1:im_height+se_origin(2) for kk=se_origin(1)+1:im_width+se_origin(1) eroded_image(k-se_origin(2),kk-se_origin(1))=min(min(image_erosion(k-se_origin(2):k+halfwidth -1,kk-se_origin(1):kk+halfheight-1)-se)); end end figure;imshow(eroded_image,[]);title('Image after Erosion'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Opening(Erosion first, then Dilation) %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

基于MATLAB的ASK调制解调实现

理工大学 《通信原理》课程设计报告 学院专业 班级学号 学生指导教师 课程成绩完成日期2016年1月8日

课程设计成绩评定 学院专业 班级学号 学生指导教师 课程成绩完成日期2016年1月8日指导教师对学生在课程设计中的评价 指导教师对课程设计的评定意见

课程设计任务书 城南学院通信工程专业

基于MATLAB的ASK调制解调实现 学生:指导老师: 摘要MATLAB是美国MathWorks公司生产的一个为科学和工程计算专门设计的交互式大型软件,本课程设计主要容是利用MATLAB集成环境下的M文件,编写程序来实现ASK的调制解调,要求采样频率为360HZ,并绘制出解调前后的时域和频域波形及叠加噪声时解调前后的时频波形,根据运行结果和波形来分析该解调过程的正确性及信道对信号传输的影响。目的是熟悉MATLAB中M文件的使用方法,并在掌握ASK调制解调原理的基础上,编写出2ASK调制解调程序,绘制出ASK信号解调前后在时域和频域中的波形,观察解调前后频谱有何变化以及对信号叠加噪声后的变化。最终得到随着输入信号噪声的增加增大,误码越严重的结论,加深对ASK信号解调原理的理解。 关键词ASK调制解调;时域谱;频域谱;高斯白噪声;信噪比 1 引言 通信原理是通信工程专业的一门重要的专业课,是通信工程专业后续专业课的基础,掌握通信原理课程的知识不仅可以打下一个坚实的专业基础,还能提高处理通信系统问题能力和素质。通过本课程设计的ASK振幅键控调制解调,可以进一步理解数字通信的基础理论,有助于加深对通信原理的理解。 1.1课程设计目的

通过设计基于MATLAB的ASK调制解调实现,让我深入理解和掌握二进制ASK调制解调以及噪声对信号传输的影响[1]。 在通信原理理论知识的基础上加深对ASK调制解调设计原理及实现方法的理解。使我对通信信号波形及频谱有深刻的认识。不仅加强了对课本知识的了解,而且还涉及到了MATLAB编程语言和软件的使用,以及基本的操作常识[2]。 掌握调制解调函数的应用,增强了我动手实践的能力。 1.2课程设计要求 根据所给的题目,查阅有关资料,掌握数字带通调制技术以及通信原理。 学会MATLAB中M文件的编写方法,能应用MATLAB软件中调制解调函数,掌握ASK调制解调原理,根据原理编写出ASK调制解调程序。 绘制出ASK信号解调前后在时域和频域中的波形,观察解调前后频谱的变化理解ASK信号解调原理。 对二进制基带信号叠加噪声后解调,绘制出解调前后信号的时频波形,然后改变噪声功率进行解调,记录并分析分析噪声对信号传输造成的影响。 根据要求独立完成课程设计学年论文,能正确阐述和分析设计结果并得出结论。 1.3课程设计步骤 产生数字基带信号并绘制时域谱和频域谱; 设置载波频率并绘制其时域谱和频域谱; 对信号进行数字调制并绘制时域谱和频域谱; 对已调信号进行解调并绘制时域谱和频域谱; 对已调信号加入高斯小噪声并绘制时域谱和频域谱;

常用的MATLAB程序和函数

==等于 <小于 >大于 <=小于或等于>=大于或等于~=不等于 4 常用内部数学函数 指数函数exp(x)以e为底数 对数函数log(x)自然对数,即以e为底数的对数log10(x)常用对数,即以10为底数的对数log2(x)以2为底数的x的对数 开方函数sqrt(x)表示x的算术平方根

绝对值函数abs(x)表示实数的绝对值以及复数的模 三角函数(自变量的单位为弧度)sin(x)正弦函数cos(x)余弦函数tan(x)正切函数cot(x)余切函数sec(x)正割函数csc(x)余割函数 反三角函数asin(x)反正弦函数acos(x)反余弦函数atan(x)反正切函数acot(x)反余切函数asec(x)反正割函数acsc(x)反余割函数 双曲函数sinh(x)双曲正弦函数cosh(x)双曲余弦函数tanh(x)双曲正切函数coth(x)双曲余切函数sech(x)双曲正割函数csch(x)双曲余割函数 反双曲函数asinh(x)反双曲正弦函数acosh(x)反双曲余弦函数atanh(x)反双曲正切函数acoth(x)反双曲余切函数asech(x)反双曲正割函数acsch(x)反双曲余割函数 求角度函数atan2(y,x)以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的射线为终边的角,其单位为弧度,范围为( , ] 数论函数gcd(a,b)两个整数的最大公约数lcm(a,b)两个整数的最小公倍数

排列组合函数factorial(n)阶乘函数,表示n的阶乘 复数函数real(z)实部函数 imag(z)虚部函数 abs(z)求复数z的模 angle(z) 求复数z的辐角,其范围是( , ] conj(z)求复数z的共轭复数 求整函数与截尾函数ceil(x)表示大于或等于实数x的最小整数floor(x)表示小于或等于实数x的最大整数round(x)最接近x的整数 最大、最小函数max([a,b,c,...]) 求最大数min([a,b, c,..]) 求最小数 符号函数 sign(x)

我的基于MATLAB仿真的数字调制与解调设计

摘要:设计了二进制振幅键控(2ASK)、二进制移频键控(2FSK) 、二进制移相键控(2PSK)调制解调系统的工作流程图,并得用了MATLAB软件对该系统的动态进行了模拟仿真,得用仿真的结果,从而衡量数字信号的传输质量。(仿宋、小五号) 关键词:调制解调、2ASK、2FSK、2PSK、2DPSK、MATLAB(宋体、小五号) ABSTRACT(四号加粗居中放置): The work stream diagrams of 2ASK、2FSK、2PSK are designed .MA TLAB softwave is used to simulate the modem system by the scatter diagrams and wave diagrams, then the transmit quality of digital signal can be measured.(小五号) Key word:Amodulate and ademodulate 、2ASK、2FSK、2PSK、2DPSK、MATLAB(小五号) (正文:宋体、五号 一级标题:黑体、四号,小标题上下空一行。) 一、数字调制解调相关原理 在通信系统中,信道的频段往往是很有限的,而原始的通信信号的频段与信道要求的频段是不匹配的,这就要求将原始信号进行调制再进行发送.相应的在接收端对调制的信号进行解调,恢复原始的信号,而且调制解调还可以在一定程度上抑制噪声对通信信号的干扰。 调制解调技术按照通信信号是模拟的还是数字的可分为模拟调制解调和数字调制解调。数字调制的基本方式可以归结为3类:振幅键控(ASK)、频移键控(FSK)和相移键控(PSK)。此外还有这3类的混合方式。 对于数字调制信号,为了提高系统的抗噪声性能,衡量系统性能的指标是误码率。1.1二进制振幅键控(2ASK) 振幅键控是正弦载波的幅度随数字基带信号而变化的数字调制。当数字基带信号为二进制时,则为二进制振幅键控。设发送的二进制符号序列由0,1序列组成,发送0符号的概率为P,发送1符号的概率为1-P,且相互独立.该二进制符号序列可表示为: 其中: Ts是二进制基带信号时间间隔,g(t)是持续时间为Ts的矩形脉冲, 为单极性不归零脉冲序列,则根据幅度调制的原理,一个二进制的振幅键控信号可以表示成一个单极性矩形脉冲序列与一个正弦型载波的相乘,即 2ASK信号的时间波形如果是通断方式,就称为通断键控信号(OOK信号)。 二进制振幅键控信号的产生可以采用数字键控的方法实现也可以采用模拟相乘的方法实现。2ASK信号与模拟调制中的AM信号类似。所以,对2ASK信号也能够采用非相干解调(包络检波法)和相干解调(同步检测法),其相应原理方框图如图1.1所示。

相关文档
相关文档 最新文档