am解调matlab程序,AM调制解调的matlab仿真
用matlab产生一个频率为1Hz,振幅为1的余弦信源,设载波频率为10Hz,A=2.想干解调器输入信噪比为15dB
主程序:
%AM调制
fc=10;
f0=1;
A=2;
t0=5;%如果频率为1,那至少要信号时长5个周期
snr=15;
dt=0.003;
fs=1/dt;
B=2;
df=0.0003;
t=0:dt:t0;
Lt=length(t);
snr_lin=10^(snr/10);
figure(1);
subplot(321)%调制信号波形
m1=cos(2*pi*f0*t);
plot(t,m1(1:length(t)))
R=2*max(m1);
axis([0 t0 -R/2 R/2])
ylabel('调制信号');
subplot(322)%调制信号频谱
[M1,m1,df1,f]=T2F(m1,dt,df,fs);
plot(f,fftshift(abs(M1)));
axis([-2 2 0 3]);
xlabel('f');
ylabel('调制信号频谱');
subplot(323)%载波波形
m2=cos(2*pi*fc*t);
plot(t,m2(1:length(t)));
ylabel('载波信号波形');
axis([0 0.4 -R/2 R/2])
subplot(324);%载波频谱
[M2,m2,df1,f]=T2F(m2,dt,df,fs);
plot(f,fftshift(abs(M2)));
xlabel('f');
ylabel('载波信号频谱');
axis([-20 20 0 3])
subplot(325)%已调波波形
m=(m1(1:length(t))+A).*m2(1:length(t));
plot(t,m(1:length(t)));
R=2*max(m)+A;
axis([0 3 -R/2 R/2])
ylabel('已调信号波形');
subplot(326)
[M,m,df1,f]=T2F(m,dt,df,fs);
plot(f,fftshift(abs(M)));
ylabel('已调信号频谱');
xlabel('f');
axis([-15 15 0 3])
%将已调信号送入信道
signal_power=power_x(m(1:Lt));
noise_power=(signal_power*fs)/(snr_lin*2*B);
noise_std=sqrt(noise_power);
noise=noise_std*randn(1,Lt);
figure(2);
subplot(321)%噪声波形
plot(t,noise)
axis([0 5 -10 10]);
xlabel('t');
ylabel('噪声信号');
subplot(322)%噪声信号频谱
[noisef,noise,df1,f]=T2F(noise,dt,df,fs);
plot(f,fftshift(abs(noisef)));
axis([-50 50 0 1])
xlabel('f');
ylabel('噪声信号频谱');
subplot(323)%信道中的信号
sam=m(1:Lt)+noise(1:Lt);
plot(t,sam);
axis([0 1 -R R])
xlabel('t');
ylabel('信道中的信号');
subplot(324)%信道中信号的频谱
[samf,sam,df1,f]=T2F(sam,dt,df,fs);
plot(f,fftshift(abs(samf)));
axis([-17 17 0 6]);
ylabel('信道中信号的频谱');
xlabel('f');
subplot(326)%带通滤波器
f_start=fc-B;
f_cutoff=fc+B;
[H ,f]=bp_f(length(sam),f_start,f_cutoff,df1,fs,A);
plot(f,fftshift(abs(H)));
axis([-15 15 0 2.5 ])
xlabel('f');
ylabel('带通滤波器');
%经过带通滤波器
DEM=H.*samf;
[dem]=F2T(DEM,fs);
figure(3)
subplot(321)
plot(t,dem(1:Lt))
axis([0 3 -5 5])
xlabel('t')
ylabel('理想BPF输出信号');
[demf,dem,df1,f]=T2F(dem(1:Lt),dt,df,fs);
subplot(322)%经过理想带通滤波器后信号频谱
plot(f,fftshift(abs(demf)));
xlabel('f');
ylabel('理想BPF输出信号频谱');
axis([-15 15 0 5]);
%与本地载波相乘,混频
subplot(323)%本地载波
plot(t,m2(1:Lt));
axis([0 0.4 -2 2])
xlabel('t');
ylabel('本地载波');
subplot(324)%本地载波频谱
plot(f,fftshift(abs(M2)));
xlabel('f');
ylabel('载波信号频谱');
axis([-20 20 0 3])
der=dem(1:Lt).*m2(1:Lt);%混频
subplot(325);
plot(t,der);
xlabel('t');
ylabel('混频后的信号');
axis([0 3 -1 R]);
subplot(326)%混频后信号频谱
[derf,der,df1,f]=T2F(der,dt,df,fs);
plot(f,fftshift(abs(derf)))
xlabel('f');
ylabel('混频后信号频谱');
axis([-30 30 0 7])
%经过低通滤波器
figure(4)
[LPF, f]=lp_f(length(der),B,df1,fs,2);
subplot(322)
plot(f,fftshift(abs(LPF)))
xlabel('f')
ylabel('理想LPF')
axis([-3 3 0 3])
DM=LPF.*derf;
[dm]=F2T(DM,fs);
subplot(323)
plot(t,dm(1:Lt));
xlabel('t')
ylabel('LPF输出信号')
subplot(324)
[dmf,dm,df1,f]=T2F(dm(1:Lt),dt,df,fs);
plot(f,fftshift(dmf));
xlabel('f')
ylabel('LPF输出信号频谱')
axis([-3 3 0 8])
%去除解调信号中的直流分量
dmd=dm(1:Lt)-mean(dm(1:Lt));
subplot(325)
plot(t,dmd)
axis([0 t0 -R/2 R/2])
xlabel('t')
ylabel('恢复信号')
[dmdf,dmd,df1,f]=T2F(dmd,dt,df,fs);
subplot(326)
plot(f,fftshift(dmdf));
xlabel('f')
ylabel('恢复信号的频谱')
axis([-1.5 1.5 0 3])
subplot(321)
plot(t,m1(1:Lt));
axis([0 ,5,-4,4])
xlabel('t')
ylabel('调制信号')
子程序:
T2F.m
function[M,m,df1,f]=T2F(m,ts,df,fs)
[M,m,df1]=fftseq(m,ts,df);
f=[0:df1:df1*(length(m)-1)]-fs/2;
M=M/fs;
Fftseq:
function [M,m,df]=fftseq(m,ts,df)
fs=1/ts;
if nargin==2
n1=0;
else
n1=fs/df;
end
n2=length(m);
n=2^(max(nextpow2(n1),nextpow2(n2)));
M=fft(m,n);
m=[m,zeros(1,n-n2)];
df=fs/n;
F2T.m
function[m]=F2T(M,fs)
m=real(ifft(M))*fs;
sigalband:
function[Bw_eq]=signalband(sf,df,T)
sf_max=max(abs(sf));
Bw_eq=sum(abs(sf)).^2*df/T/sf_max.^2;
Power_x:
function p=power_x(x)
p=(norm(x).^2)/length(x);
lp_f.m
function [H,f]=lp_f(n,f_cutoff,df1,fs,p)
n_cutoff=floor(f_cutoff/df1);
f=[0:df1:df1*(n-1)]-fs/2;
H=zeros(size(f));
H(1:n_cutoff)=p*ones(1,n_cutoff);
H(length(f)-n_cutoff+1:length(f))=p*ones(1,n_cutoff);
bp_f.m
function[H,f]=bp_f(n,f_start,f_cutoff,df1,fs,p)
n_cutoff=floor(f_cutoff/df1);
n_start=floor(f_start/df1)
f=[0:df1:df1*(n-1)]-fs/2;
H=zeros(size(f));
H((n_start+1):n_cutoff)=p*ones(1,n_cutoff-n_start);
H(length(f)-n_cutoff+1:length(f)-n_start)=p*ones(1,n_cutoff-n_start);
(待改进。。。。。。。。)
am解调matlab程序,AM调制解调的matlab仿真相关推荐
- am解调matlab程序,基于Matlab的AM调制解调.doc
学号20100602050101 密级 公 开 本科毕业论文 基于Matlab的AM调制解调 及抗噪性能分析 学 院 名 称: 专 业 名 称: 学 生 姓 名: 指 导 教 师: 讲师 二〇一四年五 ...
- 脉位调制解调 matlab,基于matlab的am调制解调
基于matlab的am调制解调 基于 Matlab 的 AM 调制解调一.AM 的调制原理AM 是指对信号进行幅度调制 [2].一般做法是先在原信号上叠加一个直流信号,以保证信号 , 然后乘上一个高频 ...
- MATLAB BPSK通信系统调制解调仿真原理及代码(二)
此仿真是瑞丽衰落信道与高斯信道的仿真对比,高斯信道的原理及仿真代码前文已有讲述. 高斯信道下的原理及代码请见 MATLAB BPSK通信系统调制解调仿真原理及代码(一)_惜洛-Jankin的博客-CS ...
- matlab实现ofdm调制解调,基于MATLAB的OFDM调制解调仿真
基于MATLAB的OFDM调制解调仿真 题目:基于 MATLAB的 OFDM调制解调仿真2009年 6 月 13 日目 录摘要 .IIAbstract IV第 1章 正交频分复用的来源 - 1 -1. ...
- 有确定项微分方程的matlab程序,微分方程的数值解法matlab四阶龙格—库塔法课件...
<微分方程的数值解法matlab四阶龙格-库塔法课件>由会员分享,可在线阅读,更多相关<微分方程的数值解法matlab四阶龙格-库塔法课件(36页珍藏版)>请在人人文库网上搜索 ...
- matlab ask fsk调制解调,Matlab的ASK-FSK--PSK程序仿真
<Matlab的ASK-FSK--PSK程序仿真>由会员分享,可在线阅读,更多相关<Matlab的ASK-FSK--PSK程序仿真(12页珍藏版)>请在人人文库网上搜索. 1. ...
- matlab 2ask解调程序,2ask调制解调系统matlab源程序.doc
2ask调制解调系统matlab源程序.doc 2ASK 调制解调系统 MATLAB 源程序 %产生数字基带信号 figure( Name , 数字信号调制过程中波形及其频谱 , NumberTitl ...
- matlab实现ofdm调制解调,基于ofdm的调制解调原理,ofdm调制解调fpga代码 - 全文
OFDM介绍 OFDM ( Orthogona lFrequency D iv isionM ulTIplex ing) 即正交频分复用技术, 实际上 OFDM 是 MCM M ult-iC arri ...
- dpsk调制matlab,2dpsk信号调制解调的matlab设计和仿真
2dpsk信号调制解调的matlab设计和仿真 2DPSK调制与解调系统的仿真 摘 要 设计了差分编码移相键控(2DPSK) 调制解调系统的工作流程图,并利用 Matlab 软件对该系统的动态进行了模 ...
- 基于matlab的BOC调制解调的同步性能仿真,输出跟踪曲线以及不同超前滞后码距下的鉴别曲线
目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 BOC-Binary Offset Carrier,也叫二进制偏置载波调制,是在Galile ...
最新文章
- 网络传输数据格式的选择
- MongoDB:利用官方驱动改装为EF代码风格的MongoDB.Repository框架 五 --- 为ListMongoDBRef增加扩展方法...
- 可怕又可笑的看病经历
- 指定位数%-m.nf与%m.nf的异同
- JProfiler 解决 Java 服务器的性能跟踪
- linux vmstat_Linux中vmstat命令指南
- 计算机设计类有哪些专业,2021新高考模式下报考,这4类专业有“潜规则”,考生报考需谨慎...
- Angularjs中$http以post请求通过消息体传递参数
- open source Lrc歌词解析器发布
- 无人机,动力系统建模
- li指令 汇编_51单片机(九)汇编指令
- DLL文件如何还原打开方式
- 怎样获取网页视频下载链接
- 论文阅读笔记:《自然语言处理中的预训练模型》
- 全民农场服务器维护上不去,全民农场签到页面空白解决方法
- train.py部分
- spring mcv 拦截器
- 蓝牙体脂秤模块方案简述
- Tesseract-OCR的使用---提取图片中的文字(OneNote)
- JNI:本地代码调用Java代码