通信原理课程设计 基于Matlab的通信系统仿真 -模拟调制系统
作者&投稿:茶孔 (若有异议请与网页底部的电邮联系)
给你个自动化专业的课程表
最好的办法是找本书例如那个《matlab通信仿真及应用实例详解》邓华等 人民邮电出版社
《MATLAB仿真在现代通信中的应用》徐明远 西安电子科技大学出版社的
或者去MATLAB论坛里找找
http://www.ilovematlab.cn/forum-21-1.html
总之不难的
% f0; 载波频率 (Hz)
% fm; 单(多)频调制频率点 (Hz)
% B: 实际基带带宽 %==================
% MaB; 最大带宽 (Hz) %==================
% fs; (中频)采样频率 (Hz)
% fs1: 第一采样频率
% fs2_expect 预期的(第二)采样频率 (Hz)
% T ; 仿真时间 (s)
% beta; 调幅系数
% Kv ; VCO灵敏度 (rad/s/V)
% n0; 噪声功率谱密度 (W/kHz)
function AM_Simulation(f0,DF,fm,B,MaxB,fs,fs1,fs2_expect,T,beta,K1,K2,Kv ,n0)
%====================================================================================
Ts = 1/fs; % 采样间隔
N = floor(T/Ts); % 时域采样总点数 % (基于fs1)
t = 0:Ts:(N-1)*Ts; % 时间采样
%-------------------------------------------------------------
% 计算以第一采样频率fs1欠采以后的载波频率f01
f01 = f0 - floor(f0/fs1)*fs1;
% if(f01>fs1/2)
% f01 = fs1 - f01;
% end;
%-------------------------------------------------------------
% 计算半带滤波的级数
K = floor(log2(fs1/fs2_expect)); % fs2_expect为预期的第二采样频率
fs2 = fs1/(2^K); % fs2 为实际的第二采样频率
%=========================================================================================================================================
% 调制信息
M = length(fm);
am = zeros(1,N);
for m=1:M
am = am + cos(2*pi*fm(m)*t);
end;
dc_offset = max(am)/beta;
a = dc_offset + am ;
%----------------------
am = am/dc_offset;
a = a/dc_offset;%%%%%%
%----------------------
%=========================================================================================================================================
% 调幅
theta0 = 2*pi*rand ; % 载波的随机初始相位
s = a.*cos( 2*pi * (f0+DF) * t + theta0); % 已调幅信号
%=========================================================================================================================================
% 噪声信道
noise = GenerateNoise(n0,fs,N,(f0+DF));
r = s + noise;
%-----------------------------------------------------------------------------------------------------------------------------------------
% r_downRate = RateAdjust(r,fs, fs1, 'ItpFlt'); %%%%%% 注意:若对白噪声(或带限白噪声)进行欠采样则将导致噪声功率谱密度的提升。
%-----------------------------------------------------------------------------------------------------------------------------------------
%=========================================================================================================================================
% 接收机带通滤波
fc = MaxB;
% r_BPF = BPF_Filter(r, (f0+DF),fc,fs);
[r_BPF,hBPF] = BPF_Filter(r, f0,fc,fs); % 接收机预先知道f0,但预先不知道DF
%----------------------------------------------------------------------------------------------
%theta_BPF = Phi_BPF(f0,fc,fs, (f0+DF));
theta_BPF = Phi_BPF(hBPF ,fs, (f0+DF)); % 该参数不用于解码,但在绘制输入锁相环的theta1时需要知道该参数
%=========================================================================================================================================
% 对BPF输出信号进行速率调整
r_BPF_downRate = RateAdjust(r_BPF,fs, fs1, 'ItpFlt');% 选择fs1需确保对带限白噪声进行的不是欠采样
%---------------------------------------------------------------
Ts1 = 1/fs1; % 采样间隔
N1 = length(r_BPF_downRate); % 时域采样总点数 % (基于fs1)
t1 = 0:Ts1:(N1-1)*Ts1; % 时间采样
%==============================================================================================================================================
% 以预先已知的f01从AM信号中得到I,Q信号
yc = r_BPF_downRate .* (2*cos(2*pi*f01*t1)); %%%%%%
ys = r_BPF_downRate .* (-2*sin(2*pi*f01*t1)); %%%%%%
zI = HalfBandFilters(yc,fs1, K);%%
zQ = HalfBandFilters(ys,fs1, K);%%
[xI, IDelay] = LPF_Filter(zI, B, fs2);
[xQ, QDelay] = LPF_Filter(zQ, B, fs2);
%----------------------------------------------------------
Ts2 = 1/fs2; % 采样间隔
N2 = length(xI); % 时域采样总点数 % (基于fs2)
t2 = 0:Ts2:(N2-1)*Ts2; % 时间采样
%----------------------------------------------------------
thetaIQ = 2*pi*DF*(15*(2^(K)-1)/fs1) + 2*pi*DF* IDelay /fs2; % 该参数不用于解码,但在绘制输入锁相环的theta1时需要知道该参数
%----------------------------------------------------------------------------------------------------------
%==============================================================================================================================================
% 在基带上用锁相环对频差以及初相进行跟踪以及补偿
% g = mean(abs(xI+j*xQ));
% xI = xI/g; % 调整输入锁相环的信号幅度, 需改为AGC
% xQ = xQ/g;
% 基带锁相
[theta2, Io,Qo, PDo,LFo] = PLL_Baseband(xI,xQ, fs2, K1,K2,Kv, 1); % 1, Carrier
a_demod = Io;
%==============================================================================================================================================
% 去直流
% dc = mean(a_demod(floor(0.2*N2):N2)); % Temp
% a_demod_offsetted = a_demod - dc;
fcL=60;%Hz
a_demod_offsetted = AHPF_Filter(a_demod,fs2, fcL);
%==============================================================================================================================================
% TxRx
figure(1);
subplot(4,2,1);plot(t,a);ylabel('a(t)');
subplot(4,2,3);plot(t,s);ylabel('s_A_M(t)'); axis([min(t) max(t) -inf Inf]);
subplot(4,2,5);plot(t,r);ylabel('r(t)'); axis([min(t) max(t) -inf Inf]);
subplot(4,2,7);plot(t,r_BPF);ylabel('r_B_P_F(t)'); axis([min(t) max(t) -inf Inf]);
xlabel('t (s)')
N_FFT = 2^(floor(log2(fs/B*100)));
subplot(4,2,2);Psd_plot_log_N(a,fs,N_FFT);
subplot(4,2,4);Psd_plot_log_N(s,fs,N_FFT);
subplot(4,2,6);Psd_plot_log_N(r,fs,N_FFT);
subplot(4,2,8);Psd_plot_log_N(r_BPF,fs,N_FFT);
% PLL
figure(2);
plot(t2,PDo);hold on;plot(t2,LFo,'r');hold off;axis([min(t2) max(t2) -inf inf]);grid on;legend('PD\o','LF\o'); hold off;
xlabel('t (s)')
figure(3);
theta1 = theta0 + theta_BPF - thetaIQ + 2*pi * DF * t2; % 基于fs2
theta2 = theta2;
subplot(311);plot(t2,theta1);hold on;plot(t2,theta2,'r');hold off;
legend('\theta_1','\theta_2');axis([min(t2) max(t2) -inf Inf]); grid on; title('Baseband Carrier Synchronization(2)');
theta_e = theta1-theta2;
subplot(312);plot(t2,theta_e);
ylabel('\theta_e(t)');legend('\theta_e');axis([min(t2) max(t2) min(theta_e)-1 max(theta_e)+1]); grid on;
theta_e = angle(exp(j*theta_e));
subplot(313);plot(t2,theta_e);
xlabel('t (s)'),ylabel('\theta_e(t)');legend('\theta_e (-\pi, \pi] ');axis([min(t2) max(t2) min(theta_e)-1 max(theta_e)+1]); grid on;
% TxRx
figure(4);
subplot(611);plot(t,a);xlabel(''),ylabel('a(t)');
subplot(612);plot(t,s);xlabel(''),ylabel('s_A_M(t)');
subplot(613);plot(t,r);xlabel(''),ylabel('r(t)');
subplot(614);plot(t,r_BPF);xlabel(''),ylabel('r_B_P_F(t)');
subplot(615);plot(t2,a_demod);xlabel('t'),ylabel('a_d(t)');
subplot(616);plot(t2,a_demod_offsetted);xlabel('t'),ylabel('m(t)');
% TxRx
figure(5);
subplot(211);plot(t,a);xlabel(''),ylabel('a(t)');
subplot(212);plot(t2,a_demod_offsetted);xlabel('t'),ylabel('m(t)');
figure(4);
%==============================================================================================================================================
通信原理课程设计 基于Matlab的通信系统仿真 -模拟调制系统如下所示:
同求~
延霄盐酸: 最好的办法是找本书例如那个《matlab通信仿真及应用实例详解》邓华等 人民邮电出版社 《MATLAB仿真在现代通信中的应用》徐明远 西安电子科技大学出版社的 或者去MATLAB论坛里找找 http://www.ilovematlab.cn/forum-21-1.html 总之不难的
靖州苗族侗族自治县13348567410: Matlab的通信系统课程设计线性幅度调制系统的仿真设计 - ?
延霄盐酸: 线性幅度调制系统的仿真设计指标要求:(1)信源为fm=1Hz,Am=1V的余弦信号关于通信的仿真,现代通信原理 之类的书有MATLAB 仿真.步骤还是很详细的.你
靖州苗族侗族自治县13348567410: 求一个与通信原理有关,能用MATLAB仿真的毕业设计课题 - ?
延霄盐酸: hdb3编译码仿真 mpsk调制仿真 不瞒你说,这两个是我的毕业设计
靖州苗族侗族自治县13348567410: 基于matlab的通信系统仿真设计有哪些 - ?
延霄盐酸: gui中通过控件调用m里面的函数,也可以和simulink建立联系,可有simulink输出波形,并给出分析.基本上你的题目已经涵盖了matlab的三个系统,即gui,m,simulink.自己学习并从简单操作开始吧.这个周末如果有时间给你做个简单的系统,希望有高手来帮你.
靖州苗族侗族自治县13348567410: 基于MATLAB的通信仿真系统设计 - ?
延霄盐酸: GUI中通过控件调用M里面的函数,也可以和simulink建立联系,可有simulink输出波形,并给出分析.基本上你的题目已经涵盖了Matlab的三个系统,即GUI,M,simulink.自己学习并从简单操作开始吧.这个周末如果有时间给你做个简单的系统,希望有高手来帮你.
靖州苗族侗族自治县13348567410: 基于matlab的通信系统的设计与实现这个设计容易吗?还是智能交通图像识别方法的研究容易? - ?
延霄盐酸: 个人觉得 智能交通图像识别方法的研究 大概是算法研究,matlab的通信系统的设计与实现 这个大概 是要仿真整个系统的.算法的话,应该是对前人的算法进行优化.通信系统的设计 要对整个系统有整体的认识和了解.算法仿真应该简单点,论文写作也比较简单;通信系统仿真更有意思,东西较多,论文内容比较好写.
靖州苗族侗族自治县13348567410: 谁能推荐一本通信原理基于matlab仿真的书.要有原理讲解和例题讲解的那种. - ?
延霄盐酸: 《matlab仿真在通信与电子工程中的应用》这本书可以,不过大部分是将simulink的
靖州苗族侗族自治县13348567410: 基于MATLAB的毕业设计有哪些? - ?
延霄盐酸: 毕业设计是教学过程的最后阶段采用的一种总结性的实践教学环节.通过毕业设计,学生可以综合应用所学的各种理论知识和技能,进行全面、系统、严格的技术及基本能力的练习.通常情况下,仅对大专以上学校要求在毕业前根据专业的不同...
靖州苗族侗族自治县13348567410: matlab生成的波形怎么进行fft分析 - ?
延霄盐酸: 我放个《通信原理——基于matlab的计算机仿真》的例子,是对方波进行分析的. 以下是主函数: %*********利用DFT计算信号的频谱并与信号的真实频谱的抽样比较******************* %***********************方波的傅里叶变换******************...
靖州苗族侗族自治县13348567410: 课程设计的题目:基于MATLAB的FFT算法实现. - ?
延霄盐酸: 一、设计题目、内容及要求课程设计的题目:基于MATLAB的语音信号分析及滤波.[num11,den11]=bilinear(b11,a11,0.5); %利用双线性变换实现频率响应S