通信原理课程设计 基于Matlab的通信系统仿真 -模拟调制系统

通信原理课程设计 基于Matlab的通信系统仿真 -模拟调制系统,第1张

AM调制的代码:

% 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 onplot(t2,LFo,'r')hold offaxis([min(t2) max(t2) -inf inf])grid onlegend('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 onplot(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)

%==============================================================================================================================================

[UsingMatLabsimulationcommunicationprincpleseriesof] - 本毕业设计用兆宽哪Matlab中的建模仿真工具SIMULINK对通信原理实验进行仿真。作为系列实验的第一部分,包括模拟信号的线性调制族码解调(AM、DSB、SSB)过程、扰码与解扰实验和低通信号的抽样巧闷定理实验。论文中讲述了Matlab的基础知识、Simulink仿真 *** 作方法以及在通信系统中的应用,对被仿真实验

[2ASK.rar] - 2ASK调制与解调包含顶层文件,各模块文件和仿真波形

[blooPressure.rar] - 上臂袖带式电子血压计的单片机处理程序和设计说明

[duozhijishu.rar] - 此内容是对多址技术即cdma,fdma,tdma技术的原理详细介绍,然后利用matlab7.0仿真软件进行SIMULINK仿真框图设计,进行仿真实验,对教师教学和学生自学都非常有帮助哦 !

[ASKPSk.rar] - ASK,PSK,BASK,BPSK的产生程序。用MATLAB来实现的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12324305.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存