资源简介
基于MATLAB GUI通信系统仿真。本次电力系统通信技术的课程设计内容为基于MATLAB GUI的通信技术仿真平台的搭建,该仿真平台中可以根据不同的指令完成信源的产生、信道与噪声的仿真、信号的调制与解调仿真、信源的编码与解码仿真和数字基带传输系统眼图和误码率的仿真等。
仿真平台利用用MATLAB的GUI搭建:平台以菜单方式工作,且平台应包含上述内容中的所有模块,系统可以显示所有模块应有相应的仿真结果及结果分析。本次课设设计了两个平台来进行通信系统的仿真,分别是2ASF随机二进制信源调制解调误码率仿真系统以及PCM固定信源的编码解码。
代码片段和文件信息
function varargout =untitled1(varargin)
gui_Singleton = 1;
gui_State = struct(‘gui_Name‘ mfilename ...
‘gui_Singleton‘ gui_Singleton ...
‘gui_OpeningFcn‘ @untitled1_OpeningFcn ...
‘gui_OutputFcn‘ @untitled1_OutputFcn ...
‘gui_LayoutFcn‘ [] ...
‘gui_Callback‘ []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State varargin{:});
else
gui_mainfcn(gui_State varargin{:});
end
function untitled1_OpeningFcn(hobject eventdata handles varargin)
handles.output = hobject;
guidata(hobject handles);
function varargout = untitled1_OutputFcn(hobject eventdata handles)
varargout{1} = handles.output;
function pushbutton1_Callback(hobject eventdata handles)
global I
global fs
global fb
global fc
global signal_in_one_bit
global space_in_zero_bit
global space_in_one_bit
global y
global S
global signal
global st
global zs
global f
global df1
global tz
global nst
global t
global x
global gjxs
global d
x=round(rand(1I));% 产生信号比特
S=fs/fb;% 每比特采样数
t=(0:S*I-1)/fs;
signal_in_one_bit=cos(2*pi*fc*(0:S*I-1)/fs);%载波
space_in_zero_bit=zeros(1S); %为0时
space_in_one_bit=ones(1S) ;%为1时
y=zeros(1S*I) ;
for i=1:length(x)
if(x(i)==1)
y((i-1)*S+1:i*S)=space_in_one_bit;
else
y((i-1)*S+1:i*S)=space_in_zero_bit;
end
end
f=[0:df1:df1*(length(tz)-1)]-fs/2;%频谱矢量计算
signal=y;
axes(handles.axes2);
plot(signal);
grid on;
ylim([-2 2]);
st=y.*signal_in_one_bit;
disp(zs);
nst=awgn(stzs);
axes(handles.axes3);
grid on;
plot(nst);
nst=nst.*signal_in_one_bit;
wp=2*pi*2*fc*0.5;
ws=2*pi*2*fc*0.9;
R=2;
T=45;
[N1wc]=buttord(wpwsRT‘s‘);
[BA]=butter(N1wc‘s‘);
h=tf(BA);
t=(0:S*I-1)/fs;
d=lsim(hnstt);
axes(handles.axes10);
grid on;
plot(d);%滤波后的噪声
%眼图函数
Ts=1;
eyenum=10;
codenum=2000;
tsample=4;
dt=0.2;
t=-eyenum/2:dt:eyenum/2;
if isempty(gjxs)
gjxs=1;
end
pp=cos(gjxs*pi*t/Ts);
pp1=1./(1-4*t.*t*gjxs*gjxs/Ts/Ts);
ht=1/Ts*sinc(t/Ts).*pp.*pp1;
code=sign(randn(1codenum))+0.05*randn(1codenum);%画眼图
for n=1:codenum/eyenum
ss=zeros(1length(ht)+Ts/dt);
for m=1:eyenum
tmp=code((n-1)*eyenum+m)*ht;
tmp1=ss((m*Ts/dt+1):length(ss))+tmp;
ss =[ss(1:(m*Ts/dt)) tmp1 zeros(1Ts/dt)];
end
drawnow
kk=1:length(ss);
axes(handles.axes7);
plot(kk*dt-dtss);hold on
clear ss;
axis([5 15 -3 3]);
end
function edit1_Callback(hobject eventdata handles)
global fs
fs=str2double(get(findobj(‘Tag‘‘edit1‘)‘String‘ )); %采样频率
function edit1_CreateFcn(hobject eventdata handles)
if ispc && isequal(get(hobject‘BackgroundColor‘) get(0‘defaultUicontrolBackgroundColor‘))
set(hobject‘BackgroundColor‘‘white‘);
end
function edit2_Callback(hobject eventdata handles)
global I
I=str2double(get(findobj(‘Tag‘‘edit2‘)‘String‘)); %周期点数
function edit2_CreateFcn(hobject eventdata handles)
if ispc && is
- 上一篇:数字图像处理DSP_IIR带通滤波器的设计
- 下一篇:高分辨率数字图像加密算法
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论