基于Matlab的FM调制与解调全能程序库

上传人:ni****g 文档编号:431126199 上传时间:2022-11-11 格式:DOC 页数:10 大小:175KB
返回 下载 相关 举报
基于Matlab的FM调制与解调全能程序库_第1页
第1页 / 共10页
基于Matlab的FM调制与解调全能程序库_第2页
第2页 / 共10页
基于Matlab的FM调制与解调全能程序库_第3页
第3页 / 共10页
基于Matlab的FM调制与解调全能程序库_第4页
第4页 / 共10页
基于Matlab的FM调制与解调全能程序库_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《基于Matlab的FM调制与解调全能程序库》由会员分享,可在线阅读,更多相关《基于Matlab的FM调制与解调全能程序库(10页珍藏版)》请在金锄头文库上搜索。

1、%FM调制解调系统.m%频率调制与解调的Matlab演示源程序%可以任意改原调制信号函数m(t)%通信工程 吴海涛 5021210102%*%*初始化*echo off close allclear allclc%*%*%*FM调制*dt=0.001; %设定时间步长t=0:dt:1.5; %产生时间向量am=5; %设定调制信号幅度fm=5; %设定调制信号频率mt=am*cos(2*pi*fm*t); %生成调制信号fc=50; %设定载波频率ct=cos(2*pi*fc*t); %生成载波kf=10; %设定调频指数int_mt(1)=0;for i=1:length(t)-1 int_

2、mt(i+1)=int_mt(i)+mt(i)*dt; %求信号m(t)的积分end %调制,产生已调信号sfm=am*cos(2*pi*fc*t+2*pi*kf*int_mt); %调制信号%*%*%*添加高斯白噪声*sn1=10; %设定信躁比(小信噪比)sn2=30; %设定信躁比(大信噪比)sn=0; %设定信躁比(无信噪比)db=am2/(2*(10(sn/10); %计算对应的高斯白躁声的方差n=sqrt(db)*randn(size(t); %生成高斯白躁声nsfm=n+sfm; %生成含高斯白躁声的已调信号(信号通%过信道传输)%*%*%*FM解调*for i=1:length

3、(t)-1 %接受信号通过微分器处理 diff_nsfm(i)=(nsfm(i+1)-nsfm(i)./dt;enddiff_nsfmn = abs(hilbert(diff_nsfm); %hilbert变换,求绝对值得到瞬时幅度(包络检波)zero=(max(diff_nsfmn)-min(diff_nsfmn)/2;diff_nsfmn1=diff_nsfmn-zero;%*%*%*时域到频域转换*ts=0.001; %抽样间隔fs=1/ts; %抽样频率df=0.25; %所需的频率分辨率,用在求傅里叶变换%时,它表示FFT的最小频率间隔%*对调制信号m(t)求傅里叶变换*m=am*c

4、os(2*pi*fm*t); %原调信号fs=1/ts;if n=2 n1=0;else n1=fs/df;endn2=length(m);n=2(max(nextpow2(n1),nextpow2(n2);M=fft(m,n);m=m,zeros(1,n-n2);df1=fs/n; %以上程序是对调制后的信号u求傅里变换M=M/fs; %缩放,便于在频铺图上整体观察f=0:df1:df1*(length(m)-1)-fs/2; %时间向量对应的频率向量%*对已调信号u求傅里变换*fs=1/ts;if n=2 n1=0;else n1=fs/df;endn2=length(sfm);n=2(m

5、ax(nextpow2(n1),nextpow2(n2);U=fft(sfm,n);u=sfm,zeros(1,n-n2);df1=fs/n; %以上是对已调信号u求傅里变换U=U/fs; %缩放%*%*%*%*显示程序*disp(按任意键可以看到原调制信号、载波信号和已调信号的曲线)pause%*figure(1)*figure(1)subplot(3,1,1);plot(t,mt); %绘制调制信号的时域图xlabel(时间t);title(调制信号的时域图)subplot(3,1,2);plot(t,ct); %绘制载波的时域图xlabel(时间t);title(载波的时域图);subp

6、lot(3,1,3);plot(t,sfm); %绘制已调信号的时域图xlabel(时间t);title(已调信号的时域图);%*disp(按任意键可以看到原调制信号和已调信号在频域内的图形)pause%*figure(2)*figure(2)subplot(2,1,1)plot(f,abs(fftshift(M) %fftshift:将FFT中的DC分量移到频谱中心xlabel(频率f)title(原调制信号的频谱图)subplot(2,1,2)plot(f,abs(fftshift(U)xlabel(频率f)title(已调信号的频谱图)%*disp(按任意键可以看到原调制信号、无噪声条件

7、下已调信号和解调信号的曲线)pause%*figure(3)*figure(3)subplot(3,1,1);plot(t,mt); %绘制调制信号的时域图xlabel(时间t);title(调制信号的时域图);subplot(3,1,2);plot(t,sfm); %绘制已调信号的时域图xlabel(时间t);title(无噪声条件下已调信号的时域图);nsfm=sfm; for i=1:length(t)-1 %接受信号通过微分器处理 diff_nsfm(i)=(nsfm(i+1)-nsfm(i)./dt;enddiff_nsfmn = abs(hilbert(diff_nsfm); %h

8、ilbert变换,求绝对值得到瞬时幅度(包络检波)zero=(max(diff_nsfmn)-min(diff_nsfmn)/2;diff_nsfmn1=diff_nsfmn-zero;subplot(3,1,3); %绘制无噪声条件下解调信号的时域图plot(1:length(diff_nsfmn1)./1000,diff_nsfmn1./400,r);xlabel(时间t); title(无噪声条件下解调信号的时域图);%*disp(按任意键可以看到原调制信号、小信噪比高斯白噪声条件下已调信号和解调信号已调信号的曲线)pause%*figure(4)*figure(4)subplot(3,1,1);plot(t,mt); %绘制调制信号的时域图xlabel(时间t);title(调制信号的时域图);db1=am2/(2*(10(sn1/10); %计算对应的小信噪比高斯白躁声的方差n1=sqrt(db1)*randn(size(t); %生成高斯白躁声nsfm1=n1+sfm; %生成含高斯白躁声的已调信号(信号通%过信道传输)for i=1:length(t)-1 %接受信号通过微分器处理 diff_nsfm1(i)=(nsfm1(i+1)-ns

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号