AM信号调制解调
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%AM信号调制解调
%% 符号说明
%m 调制信号M 调制信号频谱
%A 直流信号
%c 载波信号 C 载波信号频谱
%noise 信道噪声noisef 噪声信号频谱
%u 已调信号U 已调信号频谱
%sam 信道中的信号samf 信道中信号的频谱
%dem 经过理想带通滤波器后的信号DEM 经过理想带通滤波器后信号的频谱%dm 经过理想低通滤波器后的信号dmf 经过理想低通滤波器后信号的频谱%dmd 恢复信号dmdf 恢复信号频谱
%H 理想带通滤波器频谱
%LPF 理想低通滤波器频谱
%% 变量定义
clear;clc;
A = 2; %直流分量
f0 = 1; %信源信号频率(Hz)
E0 = 1; %信源信号振幅(V)
E = 1; %载波分量振幅(V)
fc = 10; %载波分量频率(Hz)
t0 = 1; %信号时长
snr = 15; %解调器输入信噪比dB
dt = 0.003; %系统时域采样间隔
fs = 1/dt; %系统采样频率
df = 0.001; %所需的频率分辨率
t = 0:dt:t0;
Lt = length(t); %仿真过程中,信号长度
snr_lin = 10^(snr/10);%解调器输入信噪比
%-------------画出调制信号波形及频谱
%产生模拟调制信号
m = E*cos(2*pi*f0*t)+A;
L = min(abs(m));%包络最低点
R = max(abs(m));%包络最高点
%画出调制信号波形和频谱
clf;
figure(1);
%% 调制信号波形及频谱
%画出调制信号波形
subplot(321);
plot(t,m(1:length(t)));
axis([0,t0,L-0.3,R+0.3]);%设置坐标范围
xlabel('t');title('调制信号');
set(gca,'YTick', [0:1:R+0.3]);
[M,m,df1,f] = T2F_new(m,dt,df,fs); %求出调制信号频谱
[Bw_eq] = signalband(M,df,t0); %求出信号等效带宽
subplot(322);
plot(f,fftshift(abs(M))); %画出调制信号频谱%M:傅里叶变换后的频谱序列
xlabel('f');title('调制信号频谱');
axis([-fc-5*f0,fc+5*f0,0,max(M)+0.3]);
set(gca,'XTick',-10:10:10);
set(gca,'XGrid','on');
%% 载波信号波形及频谱
%载波及其频谱
subplot(323);
c = cos(2*pi*fc*t); %载波
plot(t,c);
axis([0,t0,-E-0.2,E+0.2]);
xlabel('t');title('载波');
subplot(324); %载波频谱
[C,c,df1,f] = T2F_new(c,dt,df,fs);
plot(f,fftshift(abs(C))); %画出载波频谱
xlabel('f');title('载波频谱');
axis([-fc-5*f0,fc+5*f0,0,max(C)+0.3]);
set(gca,'XTick',-10:10:10);
set(gca,'XGrid','on');
%% 已调信号波形及频谱
%已调信号及其频谱
subplot(325); %画已调信号
u = m(1:Lt).*c(1:Lt);
plot(t,u);
axis([0,t0,-max(u)-0.5,max(u)+0.5]);
xlabel('t');title('已调信号');
set(gca,'YTick', [-max(u):1:max(u)]);
subplot(326);
[U,u,df1,f] = T2F_new(u,dt,df,fs);
plot(f,fftshift(abs(U))); %画出已调信号频谱
xlabel('f');title('已调信号频谱');
axis([-fc-5*f0,fc+5*f0,0,max(U)+0.3]);
set(gca,'XTick',-10:10:10);
set(gca,'XGrid','on');
%% 噪声信号波形及频谱
%将已调信号送入信道
%先根据所给信噪比产生高斯白噪声
signal_power = power_x(u(1:Lt)); %已调信号的平均功率
noise_power = (signal_power * fs)/(snr_lin*4*Bw_eq); %求出噪声方差(噪声均值为0)noise_std = sqrt(noise_power); %噪声标准差
noise = noise_std * randn(1,Lt); %产生噪声
%画出信道高斯白噪声波形及频谱,此时,噪声已实现,为确知信号,可求其频谱figure(2);
subplot(321);
plot(t,noise);
axis([0,t0,-max(noise),max(noise)]);
xlabel('t');title('噪声信号');
subplot(322);
[noisef,noise,df1,f] = T2F_new(noise,dt,df,fs); %噪声频谱
plot(f,fftshift(abs(noisef))); %画出噪声频谱
xlabel('f');title('噪声频谱');
%%
%信道中的信号
sam = u(1:Lt) + noise(1:Lt);%叠加了噪声的已调信号频谱
subplot(323);
plot(t,sam);
axis([0,t0,-max(sam),max(sam)]);
xlabel('t');title('信道中的信号');
subplot(324);
[samf,sam,df1,f] = T2F_new(sam,dt,df,fs); %求出叠加了噪声的已调信号频谱plot(f,fftshift(abs(samf))); %画出叠加了噪声的已调信号频谱xlabel('f');title('信道中信号的频谱');
axis([-fc-5*f0,fc+5*f0,0,max(samf)+0.3]);
set(gca,'XTick',-10:10:10);
set(gca,'XGrid','on');