⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fm.m

📁 用matlab语言编通信模拟调频调制系统
💻 M
字号:
close all
t0=8;  %信号的持续时间,用来定义时间轴的取值范围
ts=0.0001;  %抽样间隔
fs=1/ts;  %抽样频率
fc=10000;  %载波频率
t=[-t0/2:ts:t0/2];  %时间轴的取值
kf=5;   %压控振荡系数
df=0.25;  %所需的频率分辨率,用在求傅里叶变换时,它表示FFT的最小频率间隔
m=2*pi*t;  %调制信号
%*********************************************************************
jifen(1)=0;  %求信号m(t)的积分
for i=1:length(t)-1  
    jifen(i+1)=jifen(i)+m(i)*ts;
end
%*********************************************************************
[M,m,df1]=fourier(m,ts,df); %对调制信号m(t)求傅里叶变换,需调用子函数fourier
M=M/fs;    %缩放,便于在频谱图上整体观察
f=[1:length(m)]-fs/2;  %时间轴上对应的频率向量
u=1.414*cos(2*pi*fc*t+2*pi*kf*jifen);    %调制后的信号
[U,u,df1]=fourier(u,ts,df);       %对调制后的信号u(t)求傅里叶变换
U=U/fs;    %缩放
%*********************************************************************
t1=[0:ts:ts*(length(u)-1)];  %对已调信号进行解调
z=hilbert(u);  %希尔伯特变换
yq =z.*exp(-j*2*pi*fc*t1);
dem =diff(unwrap(angle(yq))*fs)/(2*pi*kf);
                 %unwrap函数用于恢复相位并去掉2π相位叠加的影响
for i=1:(length(t)-1)/2  
    dem(i)=-dem(i);
end
%*********************************************************************
figure(1)
subplot(2,1,1)
plot(t,m(1:length(t))) %此时的m信号是重新构建的信号,
                       %因为在对m求傅里叶变换时m=[m,zeros(1,n-n2)]
xlabel('时间t')
title('调制信号的时域波形')
subplot(2,1,2)
plot(t,u(1:length(t)))
axis([-1.5,1.5,-1.5,1.5]);
xlabel('时间t')
title('已调信号的时域波形')

figure(2)
subplot(2,1,1)
plot(f,abs(fftshift(M))) %fftshift:将FFT中的DC分量移到频谱中心
axis([58000,63000,0,2]);
xlabel('频率f')
title('调制信号的频谱图')
subplot(2,1,2)
plot(f,abs(fftshift(U)))
axis([58000,63000,0,0.5]);
xlabel('频率f')
title('已调信号的频谱图')

figure(3)
subplot(2,1,1)
plot(t,m(1:length(t)))
xlabel('时间t')
title('调制信号的时域波形')
subplot(2,1,2)
plot(t,dem(1:length(t)))
axis([-t0/2,t0/2,-t0*5,t0*5]);
xlabel('时间t')
title('解调信号的时域波形')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -