第一范文网 - 专业文章范例文档资料分享平台

毕业设计(论文)-基于MATLAB仿真QAM调制与解调的设计 (10)

来源:用户分享 时间:2020-06-16 本文由落花随流水 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

毕业设计小结

经过这一次的毕业设计,我学习并学会了使用应用软件Matlab,能够在该环境下进行简单的电路仿真。基本上懂得了数字调制解调技术的发展状况,并对振幅调制解调原理有了更深一步的认识理解了MQAM的原理,知道了眼图、星座图、各个频谱的产生原理、误码性能测试和相关参数的设定。

毕业设计带给我了不少收获,从学习MATLAB的使用,到仿真程序,程序刚开始的时候有不少错误,一些错误是由于粗心造成的,一些错误是由于对于原理理解上的偏差造成的。这也让我明白了,做什么事情都要严谨,不可以有半点马虎。

同时此次毕业设计也暴露出自己专业基础知识的很多不足。比如缺乏综合应用和理论联系实际的能力,等等。这次实践是对自己大学四年所学只是的一次检阅,使我明白自己的知识还很浅薄,虽然马上毕业了,但是自己的求学之路还很漫长,以后更应该在工作中学习,不明白的地方一定要不耻下问,努力使自己成为一个对社会有贡献的人。

感谢老师对我的谆谆教导,让我学到了很多的知识。

39

附 录

附源程序代码: 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');

40

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,

41

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);

42

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);

43

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科毕业设计(论文)-基于MATLAB仿真QAM调制与解调的设计 (10)全文阅读和word下载服务。

毕业设计(论文)-基于MATLAB仿真QAM调制与解调的设计 (10).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1080023.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top