MATLAB在数字调制解调中的应用.docx
《MATLAB在数字调制解调中的应用.docx》由会员分享,可在线阅读,更多相关《MATLAB在数字调制解调中的应用.docx(9页珍藏版)》请在冰豆网上搜索。
MATLAB在数字调制解调中的应用
MATLAB在数字调制解调中的应用
系别:
电信系
班级:
XXXXXXXXX
姓名:
XXX
学号:
XXXXXXXXXXX
指导老师:
XXX
一.题目:
数字调制与解调
二.要求:
用matlab模拟数字调制与解调
三.步骤:
1基本知识:
按数字调制的方法分类可以分为多进制幅度键控(M-ASK)、正交幅度键控(QASK)、多进制频率键控(M-FSK)以及多进制相位键控(M-PSK)。
数字调制包括数模转换和模拟调制两部分,如图6.25所示。
1.M元幅度键控调制(M-ASK)
M元幅度键控调制包含两部分,M-ASK映射和模拟幅度调制。
M-ASK映射将输入的
数字码符映射到区间[-x,x],数字码符取值范围是[0,M-1]区间内的整数。
输出信号
的幅值分别为[-x,x]的M-1等分点。
2.M元正交键控调制(M-QASK)
M-QASK是数字调制使用得最多的一种方法。
它一般将输入的数字码符映射成为同相和正交的两个独立分量,然后用模拟QAM法对它们进行调制;在接收方,接收的信号被解调为同相和正交信号,从它们映射过程中恢复原始信号。
有许多种方法可将输入信号映射成同相和正交分量。
通信工具箱为M-QASK提供三种方案,即平面直角点集、圆点集和用户定义任意点集。
3.M元频率键控调制(M-FSK)
M元频率键控调制是通过使用输入信号控制输出信号的频率来实现对数字信号的调制。
M-FSK调制过程分成两部分,即映射和模拟调制。
映射过程将输入信号反映成载波频率变化,模拟调制即FM。
M-FSK的解调有两种方法,即相干法和非相干法。
相干方法要求事先知道已调信号的相位,而非相干方法则不要求相位信息,它可以在解调过程中恢复已调信号的相位信息。
4.M-元相位键控调制(M-PSK)
M-PSK通过改变已调信号的相位信息来实现对数字信号的调制。
M-PSK设置不同的初相移位以区别不同的数字码符。
M-PSK调制器输入信号的取值区间[0,M-1],数字i对应的相位位移为
1带通数字调制/解调
1.数字带通调制函数dmod()
格式:
y=dmod(x,Fc,Fd,Fs,method…)
功能:
用频率为Fc(Hz)的载波去调制数字信号,然后再输出采样频率为Fs(Hz)的仿真已调信号,Fs/Fd必须是一个正整数。
当输入x是一个矩阵时,x中每列做不相关处理,输出矩阵y的行数是Fs/Fd×(x的行数)。
若变量Fs是一个两维矢量。
当它为矢量时,第一个元素是采样频率,第二个元素是调制载波信号的初相(弧度),且默认值为0。
要求Fs>Fc>Fd。
method为调制方法,见表6.6。
2.数字带通解调函数ddemod()
格式:
z=ddemod(y,Fc,Fd,Fs,method…)
功能:
解调载波为Fc(Hz)的数字调制信号y,其抽样频率为Fd(Hz),计算抽样频率为Fs(Hz)。
该函数为dmod的逆过程,对频率与函数为dmod中求要相同。
当Fd为一个二维矢量时,Fd中的第二个值即为输出抽样点的时间偏移量(必须是整数,默认为0)。
该函数测出接收码到编码中所有可能的码的距离,然后以离接收码最近的码作为输出数字码。
除method=‘msk’和method=‘fsk’解调外,该函数可使用一个指定的低通滤波器,该滤波器的传输函数由分子num和分母den指定,滤波器的抽样时间为1/Fs,缺省滤波器时,在解调时无积分器。
利用MATLAB对信号进行基带数字调制解调。
MATLAB程序如下:
M=4;%设置M的数目
Fd=1;%信号采样速率
Fs=32;%采样频率
SNRperBit=5;%信噪比
adjSNR=SNRperBit-10*log10(Fs/Fd)+10*log10(log2(M));
x=randint(5000,1,M);%源信号
%正交FSK调制
tone=0.5; %频隙间隙Δf=Fd/2
randn('state',1945724);%设置RANDN产生器的状态
w1=dmodce(x,Fd,Fs,'fsk',M,tone); %调制
y1=awgn(w1,adjSNR,'measured',[],'dB');%对调制信号添加噪声
z1=ddemodce(y1,Fd,Fs,'fsk',M,tone); %调制ser1=symerr(x,z1)%输出符号误差率
%非正交FSK调制
tone=0.25;
randn('state',1945724); %设置RANDN产生器的状态
w2=dmodce(x,Fd,Fs,'fsk',M,tone); %调制
y2=awgn(w2,adjSNR,'measured',[],'dB'); %对调制信号添加噪声
z2=ddemodce(y2,Fd,Fs,'fsk',M,tone);%解调
ser2=symerr(x,z2)%输出符号误差率
2.GUI界面的制作
3.用到的程序
①M元正交调制解调
M=16;
Fc=10;
Fd=1;
Fs=50;
x=randint(100,1,M);
y=domd(x,Fc,Fd,Fs,'qask',M);
ynoisy=y+.01*randn(Fs/Fd*100,1);
z=demod(ynoisy,Fc,Fd,Fs,'qask',M);
s=symerr(x,z);
t=0.1:
0.1:
10;
subplot(2,1,1);
plot(t,x');title('ÔÐźÅ')
subplot(2,1,2);
plot(t,z');title('¾µ÷Öƽâµ÷ºóµÄÐźÅ')
figure;modmap('qask',M)
②基带调制解调
M=4;
Fd=1;
Fs=32;
SURperBit=5;
adjSNR=SNRperBit-10*log10(Fs/Fd)+10*log10(log2(M));
x=randint(5000),1,M);
tone=0.5;
randn('state'1945724);
w1=dmodce(x,Fd,Fs,'fsk'M,tone);
y1=awgn(w1,adjSNR,'measured'[],'dB');
z1=ddemodce(y1,Fd,Fs'fsk'M,tone);
ser1=symeer(x,z1);
tone=0.25;
randn('state'1945726);
w2=dmodce(x,Fd,Fs,'fsk'M,tone);
y2=awgn(w2,adjSNR,'measured'[],'dB');
z2=ddemodce(y2,Fd,Fs'fsk'M,tone);
ser2=symeer(x,z2);
③模数转换
a=4;
f0=0.02;
L=50;
n=1:
(L-1);
x=a.*cos(2.*pi.*f0.*n);
bit=5;
range=2^5;
plot(x);
interval=(a*2)/(range-1);
partition=[-a:
interval:
a];
interval2=(a*2)/(range)
codebook=[-a:
interval2:
a];
[indexquantized]=quantiz(x,partition,codebook);
plot(n,x,'x',n,quantized,'.');
legend('Originalsignal','Quantizedsignal');
四结束语
在MATLAB的学习中不仅要在课堂上学认真学习,最重要的还是在课后的学习,在平时的学习当中要不断的探索不断的研究才能将所学知识掌握的更牢固。