用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仿真相关推荐

  1. am解调matlab程序,基于Matlab的AM调制解调.doc

    学号20100602050101 密级 公 开 本科毕业论文 基于Matlab的AM调制解调 及抗噪性能分析 学 院 名 称: 专 业 名 称: 学 生 姓 名: 指 导 教 师: 讲师 二〇一四年五 ...

  2. 脉位调制解调 matlab,基于matlab的am调制解调

    基于matlab的am调制解调 基于 Matlab 的 AM 调制解调一.AM 的调制原理AM 是指对信号进行幅度调制 [2].一般做法是先在原信号上叠加一个直流信号,以保证信号 , 然后乘上一个高频 ...

  3. MATLAB BPSK通信系统调制解调仿真原理及代码(二)

    此仿真是瑞丽衰落信道与高斯信道的仿真对比,高斯信道的原理及仿真代码前文已有讲述. 高斯信道下的原理及代码请见 MATLAB BPSK通信系统调制解调仿真原理及代码(一)_惜洛-Jankin的博客-CS ...

  4. matlab实现ofdm调制解调,基于MATLAB的OFDM调制解调仿真

    基于MATLAB的OFDM调制解调仿真 题目:基于 MATLAB的 OFDM调制解调仿真2009年 6 月 13 日目 录摘要 .IIAbstract IV第 1章 正交频分复用的来源 - 1 -1. ...

  5. 有确定项微分方程的matlab程序,微分方程的数值解法matlab四阶龙格—库塔法课件...

    <微分方程的数值解法matlab四阶龙格-库塔法课件>由会员分享,可在线阅读,更多相关<微分方程的数值解法matlab四阶龙格-库塔法课件(36页珍藏版)>请在人人文库网上搜索 ...

  6. matlab ask fsk调制解调,Matlab的ASK-FSK--PSK程序仿真

    <Matlab的ASK-FSK--PSK程序仿真>由会员分享,可在线阅读,更多相关<Matlab的ASK-FSK--PSK程序仿真(12页珍藏版)>请在人人文库网上搜索. 1. ...

  7. matlab 2ask解调程序,2ask调制解调系统matlab源程序.doc

    2ask调制解调系统matlab源程序.doc 2ASK 调制解调系统 MATLAB 源程序 %产生数字基带信号 figure( Name , 数字信号调制过程中波形及其频谱 , NumberTitl ...

  8. matlab实现ofdm调制解调,基于ofdm的调制解调原理,ofdm调制解调fpga代码 - 全文

    OFDM介绍 OFDM ( Orthogona lFrequency D iv isionM ulTIplex ing) 即正交频分复用技术, 实际上 OFDM 是 MCM M ult-iC arri ...

  9. dpsk调制matlab,2dpsk信号调制解调的matlab设计和仿真

    2dpsk信号调制解调的matlab设计和仿真 2DPSK调制与解调系统的仿真 摘 要 设计了差分编码移相键控(2DPSK) 调制解调系统的工作流程图,并利用 Matlab 软件对该系统的动态进行了模 ...

  10. 基于matlab的BOC调制解调的同步性能仿真,输出跟踪曲线以及不同超前滞后码距下的鉴别曲线

    目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 BOC-Binary Offset Carrier,也叫二进制偏置载波调制,是在Galile ...

最新文章

  1. 网络传输数据格式的选择
  2. MongoDB:利用官方驱动改装为EF代码风格的MongoDB.Repository框架 五 --- 为ListMongoDBRef增加扩展方法...
  3. 可怕又可笑的看病经历
  4. 指定位数%-m.nf与%m.nf的异同
  5. JProfiler 解决 Java 服务器的性能跟踪
  6. linux vmstat_Linux中vmstat命令指南
  7. 计算机设计类有哪些专业,2021新高考模式下报考,这4类专业有“潜规则”,考生报考需谨慎...
  8. Angularjs中$http以post请求通过消息体传递参数
  9. open source Lrc歌词解析器发布
  10. 无人机,动力系统建模
  11. li指令 汇编_51单片机(九)汇编指令
  12. DLL文件如何还原打开方式
  13. 怎样获取网页视频下载链接
  14. 论文阅读笔记:《自然语言处理中的预训练模型》
  15. 全民农场服务器维护上不去,全民农场签到页面空白解决方法
  16. train.py部分
  17. spring mcv 拦截器
  18. 蓝牙体脂秤模块方案简述
  19. Tesseract-OCR的使用---提取图片中的文字(OneNote)
  20. JNI:本地代码调用Java代码

热门文章

  1. 获取照片经纬度(wgs84)转高德经纬度(gcj02)
  2. android的sd卡分区,AndroidSD卡做磁盘分区图文教程
  3. C/S、B/S架构模式的三层结构特点分析
  4. 活动报名 | 保护儿童,保护未来!智源发布《面向儿童的人工智能北京共识》
  5. BurpSuite系列(四)----Scanner模块(漏洞扫描)
  6. docker 的初步接触
  7. 【203】SSL证书常见格式转换
  8. Excel绘制CDF图
  9. 图书馆用户信息表单生成
  10. 智能电子密码锁行业调研报告 - 市场现状分析与发展前景预测