【matlab编程代做】AM调制及其频谱
- 格式:pdf
- 大小:141.70 KB
- 文档页数:5
基于matlab的-AM-FM调制与解调报告AM调制与解调100%% AMµ÷ÖÆfigure('Name','Ðźŵ÷ÖÆ¹ý³ÌÖв¨Ðμ°ÆäƵÆ×','NumberTitle','off')a0=1;f0=2000;fc=20000;fs=1000000;t=[1:0.000001:4];am1=0*cos(2*pi*f0*t); %µ÷ÖÆÐźÅam=a0+am1;t1=cos(2*pi*fc*t); %ÔØ²¨s_am=am.*t1;AM1=fft(am1); T1=fft(t1); S_AM=fft(s_am);f=(0:3000000)*fs/3000001-fs/2;subplot(3,2,1); plot(t(1:1000),am1(1:1000)); title('ÐÅÏ¢ÐźŲ¨ÐÎ');subplot(3,2,2); plot(f,fftshift(abs(AM1))); title('ÐÅÏ¢ÐÅºÅÆµÆ×');subplot(3,2,3); plot(t(1:1000),t1(1:1000)); title('ÔØ²¨ÐźÅ');subplot(3,2,4); plot(f,fftshift(abs(T1))); title('ÔØ²¨ÐÅºÅÆµÆ×');subplot(3,2,5); plot(t(1:1000),s_am(1:1000)); title('Òѵ÷ÐźÅ');subplot(3,2,6); plot(f,fftshift(abs(S_AM))); title('Òѵ÷ÐÅºÅÆµÆ×');%²úÉúÔëÉùfigure('Name','Ìí¼ÓÔëÉù¼°´øÍ¨Â˲¨¹ý³Ì²¨Ðμ°ÆäƵÆ×','NumberTitle','off ');snr=5;y=awgn(s_am,snr);fcuts=[16000 17500 22500 24000];mags=[0 1 0];devs=[0.05 0.01 0.05];[n,Wn,beta,ftype]=kaiserord(fcuts,mags,devs,fs);hh=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');[H,f]=freqz(hh,1,1024,fs);st_p=fftfilt(hh,y);Q=fft(st_p);Y=fft(y);f=(0:3000000)*fs/3000001-fs/2;subplot(2,2,1);plot(t(1500001:1501000),y(1500001:1501000));title('Ìí¼ÓÔëÉùºóÐźŲ¨ÐÎ');subplot(2,2,2);plot(f,fftshift(abs(Y)));title('Ìí¼ÓÔëÉùºóÐÅºÅÆµÆ×');subplot(2,2,3);plot(t(1500001:1501000),st_p(1500001:1501000));title('´øÍ¨Â˲¨ºóÐźŲ¨ÐÎ');subplot(2,2,4); plot(f,fftshift(abs(Q)));title('´øÍ¨Â˲¨ºóÐÅºÅÆµÆ×');%½âµ÷figure('Name','Ïà¸É½âµ÷ËùµÃ²¨Ðμ°ÆäƵÆ×','NumberTitle','off');ss_am=st_p.*t1;SS_AM=fft(ss_am)f=(0:3000000)*fs/3000001-fs/2;subplot(2,1,1);plot(t(1500001:1503000),ss_am(1500001:1503000));title( 'Ïà³ËÐźÅ');subplot(2,1,2); plot(f,fftshift(abs(SS_AM)));title('Ïà³ËÐÅºÅÆµÆ×');fcuts1=[2500,30000];mags1=[1 0];devs1=[0.01 0.05];[n,Wn,beta,ftype]=kaiserord(fcuts1,mags1,devs1,fs);hh1=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');[H,f]=freqz(hh1,1,1024,fs);m0=fftfilt(hh1,ss_am);M0=fft(m0);f=(0:3000000)*fs/3000001-fs/2;figuresubplot(2,1,1);plot(t(1500001:1501000),m0(1500001:1501000));title('½âµ÷ÐźÅ');subplot(2,1,2); plot(f,fftshift(abs(M0)));title('½âµ÷ÐÅºÅÆµÆ×');11.0005 1.001-101信息信号波形-505x 1050126信息信号频谱11.0005 1.001-101载波信号-505x 1050126载波信号频谱11.00051.001-202已调信号-55x 105012x 106已调信号频谱2.52.50052.501-4-2024添加噪声后信号波形-505x 105051015x 105添加噪声后信号频谱2.52.50052.501-2024带通滤波后信号波形-55x 10500.511.526带通滤波后信号频谱50%% AMµ÷ÖÆ2.5 2.5005 2.501 2.5015 2.502 2.5025 2.503 2.5035-1012相乘信号-5-4-3-2-1012345x 1050510155相乘信号频谱2.52.50012.50022.50032.50042.50052.50062.50072.50082.5009 2.501-0.500.51解调信号-5-4-3-2-1012345x 1050510155解调信号频谱figure('Name','Ðźŵ÷ÖÆ¹ý³ÌÖв¨Ðμ°ÆäƵÆ×','NumberTitle','off')a0=2;f0=2000;fc=20000;fs=1000000;t=[1:0.000001:4];am1=0*cos(2*pi*f0*t); %µ÷ÖÆÐźÅam=a0+am1;t1=cos(2*pi*fc*t); %ÔØ²¨s_am=am.*t1;AM1=fft(am1); T1=fft(t1); S_AM=fft(s_am);f=(0:3000000)*fs/3000001-fs/2;subplot(3,2,1); plot(t(1:1000),am1(1:1000)); title('ÐÅÏ¢ÐźŲ¨ÐÎ');subplot(3,2,2); plot(f,fftshift(abs(AM1))); title('ÐÅÏ¢ÐÅºÅÆµÆ×');subplot(3,2,3); plot(t(1:1000),t1(1:1000)); title('ÔØ²¨ÐźÅ');subplot(3,2,4); plot(f,fftshift(abs(T1))); title('ÔØ²¨ÐÅºÅÆµÆ×');subplot(3,2,5); plot(t(1:1000),s_am(1:1000)); title('Òѵ÷ÐźÅ');subplot(3,2,6); plot(f,fftshift(abs(S_AM))); title('Òѵ÷ÐÅºÅÆµÆ×');%²úÉúÔëÉùfigure('Name','Ìí¼ÓÔëÉù¼°´øÍ¨Â˲¨¹ý³Ì²¨Ðμ°ÆäƵÆ×','NumberTitle','off ');snr=5;y=awgn(s_am,snr);fcuts=[16000 17500 22500 24000];mags=[0 1 0];devs=[0.05 0.01 0.05];[n,Wn,beta,ftype]=kaiserord(fcuts,mags,devs,fs);hh=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');[H,f]=freqz(hh,1,1024,fs);st_p=fftfilt(hh,y);Q=fft(st_p);Y=fft(y);f=(0:3000000)*fs/3000001-fs/2;subplot(2,2,1);plot(t(1500001:1501000),y(1500001:1501000));title('Ìí¼ÓÔëÉùºóÐźŲ¨ÐÎ');subplot(2,2,2);plot(f,fftshift(abs(Y)));title('Ìí¼ÓÔëÉùºóÐÅºÅÆµÆ×');subplot(2,2,3);plot(t(1500001:1501000),st_p(1500001:1501000));title('´øÍ¨Â˲¨ºóÐźŲ¨ÐÎ');subplot(2,2,4); plot(f,fftshift(abs(Q)));title('´øÍ¨Â˲¨ºóÐÅºÅÆµÆ×');%½âµ÷figure('Name','Ïà¸É½âµ÷ËùµÃ²¨Ðμ°ÆäƵÆ×','NumberTitle','off');ss_am=st_p.*t1;SS_AM=fft(ss_am)f=(0:3000000)*fs/3000001-fs/2;subplot(2,1,1);plot(t(1500001:1503000),ss_am(1500001:1503000));title( 'Ïà³ËÐźÅ');subplot(2,1,2); plot(f,fftshift(abs(SS_AM)));title('Ïà³ËÐÅºÅÆµÆ×'); fcuts1=[2500,30000];mags1=[1 0];devs1=[0.01 0.05];[n,Wn,beta,ftype]=kaiserord(fcuts1,mags1,devs1,fs);hh1=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');[H,f]=freqz(hh1,1,1024,fs);m0=fftfilt(hh1,ss_am);M0=fft(m0);f=(0:3000000)*fs/3000001-fs/2;figuresubplot(2,1,1);plot(t(1500001:1501000),m0(1500001:1501000));title('½âµ÷ÐźÅ');subplot(2,1,2); plot(f,fftshift(abs(M0)));title('½âµ÷ÐÅºÅÆµÆ×');11.0005 1.001-101信息信号波形-505x 1050126信息信号频谱11.0005 1.001-101载波信号-505x 1050126载波信号频谱11.00051.001-505已调信号-55x 105024x 106已调信号频谱2.52.50052.501-505添加噪声后信号波形-505x 1050123x 106添加噪声后信号频谱2.52.50052.501-4-2024带通滤波后信号波形-55x 105012346带通滤波后信号频谱0%% AMµ÷ÖÆ2.5 2.5005 2.501 2.5015 2.502 2.5025 2.503 2.5035-10123相乘信号-5-4-3-2-1012345x 10501236相乘信号频谱2.52.50012.50022.50032.50042.50052.50062.50072.50082.5009 2.50100.511.5解调信号-5-4-3-2-1012345x 10501236解调信号频谱figure('Name','Ðźŵ÷ÖÆ¹ý³ÌÖв¨Ðμ°ÆäƵÆ×','NumberTitle','off')a0=10^100;f0=2000;fc=20000;fs=1000000;t=[1:0.000001:4];am1=0*cos(2*pi*f0*t); %µ÷ÖÆÐźÅam=a0+am1;t1=cos(2*pi*fc*t); %ÔØ²¨s_am=am.*t1;AM1=fft(am1); T1=fft(t1); S_AM=fft(s_am);f=(0:3000000)*fs/3000001-fs/2;subplot(3,2,1); plot(t(1:1000),am1(1:1000)); title('ÐÅÏ¢ÐźŲ¨ÐÎ');subplot(3,2,2); plot(f,fftshift(abs(AM1))); title('ÐÅÏ¢ÐÅºÅÆµÆ×');subplot(3,2,3); plot(t(1:1000),t1(1:1000)); title('ÔØ²¨ÐźÅ');subplot(3,2,4); plot(f,fftshift(abs(T1))); title('ÔØ²¨ÐÅºÅÆµÆ×');subplot(3,2,5); plot(t(1:1000),s_am(1:1000)); title('Òѵ÷ÐźÅ');subplot(3,2,6); plot(f,fftshift(abs(S_AM))); title('Òѵ÷ÐÅºÅÆµÆ×');%²úÉúÔëÉùfigure('Name','Ìí¼ÓÔëÉù¼°´øÍ¨Â˲¨¹ý³Ì²¨Ðμ°ÆäƵÆ×','NumberTitle','off ');snr=5;y=awgn(s_am,snr);fcuts=[16000 17500 22500 24000];mags=[0 1 0];devs=[0.05 0.01 0.05];[n,Wn,beta,ftype]=kaiserord(fcuts,mags,devs,fs);hh=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');[H,f]=freqz(hh,1,1024,fs);st_p=fftfilt(hh,y);Q=fft(st_p);Y=fft(y);f=(0:3000000)*fs/3000001-fs/2;subplot(2,2,1);plot(t(1500001:1501000),y(1500001:1501000));title('Ìí¼ÓÔëÉùºóÐźŲ¨ÐÎ');subplot(2,2,2);plot(f,fftshift(abs(Y)));title('Ìí¼ÓÔëÉùºóÐÅºÅÆµÆ×');subplot(2,2,3);plot(t(1500001:1501000),st_p(1500001:1501000));title('´øÍ¨Â˲¨ºóÐźŲ¨ÐÎ');subplot(2,2,4); plot(f,fftshift(abs(Q)));title('´øÍ¨Â˲¨ºóÐÅºÅÆµÆ×');%½âµ÷figure('Name','Ïà¸É½âµ÷ËùµÃ²¨Ðμ°ÆäƵÆ×','NumberTitle','off');ss_am=st_p.*t1;SS_AM=fft(ss_am)f=(0:3000000)*fs/3000001-fs/2;subplot(2,1,1);plot(t(1500001:1503000),ss_am(1500001:1503000));title( 'Ïà³ËÐźÅ');subplot(2,1,2); plot(f,fftshift(abs(SS_AM)));title('Ïà³ËÐÅºÅÆµÆ×'); fcuts1=[2500,30000];mags1=[1 0];devs1=[0.01 0.05];[n,Wn,beta,ftype]=kaiserord(fcuts1,mags1,devs1,fs);hh1=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');[H,f]=freqz(hh1,1,1024,fs);m0=fftfilt(hh1,ss_am);M0=fft(m0);f=(0:3000000)*fs/3000001-fs/2;figuresubplot(2,1,1);plot(t(1500001:1501000),m0(1500001:1501000));title('½âµ÷ÐźÅ');subplot(2,1,2); plot(f,fftshift(abs(M0)));title('½âµ÷ÐÅºÅÆµÆ×');11.0005 1.001-101信息信号波形-505x 1050126信息信号频谱1 1.0005 1.001-101载波信号-505x 1050126载波信号频谱11.00051.001-101x 10100已调信号-55x 105012x 10106已调信号频谱2.52.5005 2.501-1-0.500.51x 10100添加噪声后信号波形-505x 105051015x 10105添加噪声后信号频谱2.52.5005 2.501-2-1012100带通滤波后信号波形-55x 10501106带通滤波后信号频谱FM 调制与解调%%FMfigure('Name','FMµ÷ÖÆ²¨ÐÎÓëÆµÆ×')2.5 2.5005 2.501 2.5015 2.502 2.5025 2.503 2.5035-50510x 1099相乘信号-5-4-3-2-1012345x 105051015105相乘信号频谱2.52.50012.50022.50032.50042.50052.50062.50072.50082.5009 2.5013.93.913.923.93x 1099解调信号-1-0.500.51x 105123105解调信号频谱f0=2000; fc=20000; fs=1000000; Am=1; kf=0.5; Tc=8; Ta=0.001; dt=0.000001;t=[0:1/fs:3];f=(0:length(t)-1)*fs/(length(t))-fs/2;fm0=cos(2*pi*f0*t);mt=fm0;%»ý·ÖÆ÷Éè¼Æw1=0;w2=0;for m=1:length(t)w1=mt(m)+w2;w2=mt(m)+w1;fi(m)=w1/(2*fs);endfi=fi*2*pi/max(abs(fi));I=cos(kf*fi);Q=sin(kf*fi);y1=Am*cos(2*pi*fc*t).*I-Am*sin(2*pi*fc*t).*Q;subplot(2,1,1);plot(t,y1);title('²¨ÐÎ')axis([1e-3 4e-3 -2 2]);Y1=fft(y1);subplot(2,1,2);plot(f,fftshift(abs(Y1))/1e6); title('ƵÆ×') %%ÔØ²¨ÆµÆ×axis([-4e4 4e4 0 1]);figure('Name','FMµ÷ÖÆºó¼ÓÔëÉù²¨ÐÎÓë½âµ÷ºó²¨ÐÎÒÔ¼°Â˳ýÖ±Á÷·ÖÁ¿ºóµÄ²¨ÐÎ')y1o=awgn(y1,40);subplot(3,1,1);plot(t,y1o); title('¼ÓÔëÉùºó²¨ÐÎ') %%¼ÓÔëÉùºóµÄÐźÅaxis([1e-3 4e-3 -2 2]);%%´øÍ¨Â˲¨KSband=2*(3+1)*f0;fcutsb=[fc-KSband-2000 fc-KSband fc+KSbandfc+KSband+2000]; %%½ÓÊÕ»úǰ¶Ë´øÍ¨Â˲¨magsb=[0 1 0];devsb=[0.05 0.01 0.05];[nb,Wnb,betab,ftypeb]=kaiserord(fcutsb,magsb,devsb,fs);hhb=fir1(nb,Wnb,ftypeb,kaiser(nb+1,betab),'noscale'); %´øÍ¨Â˲¨Æ÷£»st_pb=fftfilt(hhb,y1o);subplot(3,1,2);st_pb=st_pb/1e6;plot(t,st_pb); title('´øÍ¨Â˲¨Æ÷ºóµÄ²¨ÐÎ')axis([1e-3 4e-3 -2e-6 2e-6]);%΢·ÖÆ÷Éè¼Æfor i=1:length(t)-1 %½ÓÊÕÐźÅͨ¹ý΢·ÖÆ÷´¦Àídiff_st_pb(i)=(st_pb(i+1)-st_pb(i))/dt;endsfm=abs(hilbert(diff_st_pb));subplot(3,1,2);plot(t,[sfm*20 0]);axis([1e-3 4e-3 0 4]);%%¸ôÖ±% KSbandh=2*(3+1)*f0;fcutsh=[0.01 3000];magsh=[0 1];devsh=[0.01 0.05];[nh,Wnh,betah,ftypeh]=kaiserord(fcutsh,magsh,devsh,fs);hhh=fir1(nh,Wnh,ftypeh,kaiser(nh+1,betah),'noscale');sfm_out=fftfilt(hhh,sfm*20);subplot(3,1,3);plot(t,[sfm_out 0]);title('¸ôÖ±ºóµÄ²¨ÐÎ')axis([1e-3 4e-3 -2 2]);11.522.533.54x 10-3-2-1012波形-4-3-2-101234x 10400.51频谱11.522.533.54x 10-3-202加噪声后波形11.522.53 3.54x 10-302411.522.533.54x 10-3-202隔直后的波形。
题目利用MATLAB实现信号的AM调制与解调专业、班级电子信息工程技术学号姓名基本要求、主要参考资料等:基本要求:1、掌握利用MATLAB实现信号AM调制与解调的方法。
2、学习MATLAB中信号表示的基本方法及绘图函数的调用,实现对常用连续时间信号的可视化表示。
3、加深理解调制信号的变化;验证信号调制的基本概念、基本理论,掌握信号与系统的分析方法。
主要参考资料:1、王秉钧等. 通信原理[M].北京:清华大学出版社,2006.112、陈怀琛.数字信号处理教程----MATLAB释义与实现[M].北京:电子工业出版社,2004.目录摘要 (1)1.matlab简介 (2)1.1matlab基本功能 (2)1.2matlab应用 (2)2.系统总体设计方案 (3)2.1调制信号 (3)2.1.1 matlab实现调制信号的波形 (3)2.1.2 matlab实现调制信号的频谱 (3)2.1.3 matlab实现载波的仿真 (4)2.2信号的幅度调制 (5)2.2.1信号的调制 (5)2.2.2幅度调制原理 (5)2.2.3 matlab实现双边带幅度调制 (7)2.2.4 matlab实现已调信号的频谱图 (7)2.2.5 幅度调制前后的比较 (8)2.3已调信号的解调 (8)2.3.1 AM信号的解调原理及方式 (8)2.3.2 matlab实现已调信号的解调 (10)2.3.3信号解调前后的比较 (111)结论 (122)参考文献 (133)摘 要现在的社会越来越发达,科学技术不断的在更新,在信号和模拟电路里面经常要用到调制与解调,而信号幅度调制与解调是最基本,也是经常用到的。
用AM 调制与解调可以在电路里面实现很多功能,制造出很多有用又实惠的电子产品,为我们的生活带来便利。
在我们日常生活中用的收音机也是采用了AM 调制方式,而且在军事和民用领域都有十分重要的研究课题。
本设计主要研究内容是利用MATLAB 实现对()()⎪⎩⎪⎨⎧≤=其他 ,0t ,10002t t Sa t m 进行AM 调制,载波信号频率为1000Hz ,调制深度为0.5。
1/用matlab产生一个频率为1Hz,功率为1W的余弦信源,设载波的频率为10Hz,画出:(1)A=2的AM调制信号(2)DSB调制信号(3)SSB调制信号(4)在信道中各自加入经过带通滤波器后的窄带高斯白噪声,功率为0.1,解调各个信号,并画出波形。
1. 研究模拟连续信号在SSB 线性调制中的信号波形与频谱,了解调制信号是如何搬移到载波附近。
2. 加深对模拟线性调制SSB 的工作原理的理解。
3. 了解产生调幅波(AM )和抑制载波单边带波(SSB —AM )的调制方式,以及两种波之间的关系。
4. 了解用滤波法产生单边带SSB —AM 的信号的方式和上下边带信号的不同。
5. 了解在相干解调中存在同步误差(频率误差、相位误差)对解调信号的影响从而了解使用同频同相的相干载波在相干解调中的重要性。
一. 实验目的掌握SSB 信号调制和解调基本原理。
通过matlab仿真,加深对SSB 系统的理解;锻炼运用所学知识,独立分析问题、解决问题的综合能力。
二. 实验原理单边带信号的产生:双边带调制信号频谱中含有携带同一信息的上、下两个边带。
因此,我们只需传送一个边带信号就可以达到信息传输的目的,以节省传输带宽、提高信道利用率。
这就是单边带调制(SSB —SC )。
产生SSB 信号有移相法和滤波法。
本设计采用滤波法,即,将已产生的双边带信号通过一个带通滤波器,根据该滤波器传递函数的不同,可分别得到下边带信号和上边带信号。
SSB 信号可表示为: 式中:是m (t )的所有频率成分移相的信号,称为的希尔伯特信号。
式中符号取“-”产生上边带,取“+”产生下边带。
单边带信号的调制:主要是在时域上乘上一个频率较高的载波信号,实现频率的搬移,使有用信号容易被传播。
单边带调幅信号可以通过双边带调幅后经过滤波器实现。
单边带信号的解调:采用相干解调法,解调与调制的实质一样,均是频谱搬移。
解调是调制的反过程,即把在载波位置的已调信号的谱搬回到原始基带位置,因此同样用相乘器与载波相乘来实现。
am调制matlab代码以下是一份关于AM调制的MATLAB代码,以及对该代码的详细解释。
首先,我们需要明确AM调制的基本原理。
AM调制是一种将信号转换为通过调制一个高频载波信号来传输的技术。
AM调制的基本过程包括将载波信号的振幅按照基带信号的变化进行调制,并通过解调过程将频率重新还原为原始信号。
在MATLAB中实现AM调制的首要任务是生成高频载波信号。
我们可以通过使用sin函数来生成一个正弦波,然后通过调整振幅和频率来创建一个高频信号。
以下是一个生成高频载波信号的MATLAB代码示例:设置参数fc = 1000; 载波频率amplitude = 1; 载波振幅samplingRate = 10000; 采样率time = 1; 生成的信号时间长度生成时间序列t = 0:1/samplingRate:time-1/samplingRate;生成载波信号carrierSignal = amplitude*sin(2*pi*fc*t);在上述代码中,我们定义了载波的频率为1000Hz,振幅为1,并设置了采样率为10000Hz,生成了一个持续1秒的时间序列。
通过将时间序列与正弦函数相乘,我们可以生成一个高频载波信号。
生成的载波信号存储在名为`carrierSignal`的向量中。
接下来,我们需要准备一个基带信号。
基带信号可以是一段音频,也可以是一个控制信号。
在这个例子中,我们将使用一个简单的正弦波作为基带信号。
以下是一个生成基带信号的MATLAB代码示例:设置参数fm = 20; 基带信号频率amplitude = 1; 基带信号振幅生成基带信号basebandSignal = amplitude*sin(2*pi*fm*t);在上述代码中,我们定义了基带信号的频率为20Hz,振幅为1。
通过使用相同的时间序列`t`,我们可以生成一个基带信号。
生成的基带信号存储在名为`basebandSignal`的向量中。
郑州轻工业学院课程设计任务书题目利用MATLAB实现信号的AM调制与解调专业、班级电子信息工程级班学号姓名主要内容、基本要求、主要参考资料等:主要内容:利用MATLAB对信号()()⎪⎩⎪⎨⎧≤=其他,0t,1002ttSatm进行AM调制,载波信号频率为1000Hz,调制深度为0.5。
t0=0.2;首先在MATLAB中显示调制信号的波形和频谱,已调信号的波形和频谱,比较信号调制前后的变化。
然后对已调信号解调,并比较解调后的信号与原信号的区别。
基本要求:1、掌握利用MATLAB实现信号AM调制与解调的方法。
2、学习MATLAB中信号表示的基本方法及绘图函数的调用,实现对常用连续时间信号的可视化表示。
3、加深理解调制信号的变化;验证信号调制的基本概念、基本理论,掌握信号与系统的分析方法。
主要参考资料:1、王秉钧等. 通信原理[M].北京:清华大学出版社,2006.112、陈怀琛.数字信号处理教程----MATLAB释义与实现[M].北京:电子工业出版社,2004.完成期限:2014.6.9—2014.6.13指导教师签名:课程负责人签名:2014年6月5日目录摘要 (1)1.matlab简介 (2)1.1matlab基本功能 (2)1.2matlab应用 (2)2.系统总体设计方案 (4)2.1调制信号 (4)2.1.1 matlab实现调制信号的波形 (4)2.1.2 matlab实现调制信号的频谱 (4)2.1.3 matlab实现载波的仿真 (5)2.2信号的幅度调制 (6)2.2.1信号的调制 (6)2.2.2幅度调制原理 (6)2.2.3 matlab实现双边带幅度调制 (8)2.2.4 matlab实现已调信号的频谱图 (8)2.2.5 幅度调制前后的比较 (9)2.3已调信号的解调 (9)2.3.1 AM信号的解调原理及方式 (9)2.3.2 matlab实现已调信号的解调 (11)2.3.3信号解调前后的比较 (12)结论与展望 (13)参考文献 (14)附录 (15)摘要现在的社会越来越发达,科学技术不断的在更新,在信号和模拟电路里面经常要用到调制与解调,而信号幅度调制与解调是最基本,也是经常用到的。
基于MATLAB的AM信号的调制与解调(陕西理工学院物理与电信工程学院通信工程专业1203班,陕西汉中723003)指导教师:井敏英[摘要]:本文主要的研究内容是了解AM信号的数学模型及调制方式以及其解调的方法。
不同的解调方法在不同的信噪比情况下的解调结果,那种方法更好,作出比较。
进行AM信号的调制与解调。
先从AM的调制研究,研究它的功能及在现实生活中的运用。
其次研究AM的解调,以及一些有关的知识点,以及通过它在通信方面的运用更加深入的了解它。
从AM信号的数学模型及调制解调方式出发,得出AM调制与解调的框图和调制解调波形。
利用MA TLAB编程语言实现对AM 信号的调制与解调,给出不同信噪比情况下的解调结果对比。
[关键词]:AM信号;调制;解调;信噪比MATLAB.Modulation and demodulation of AM signalbased on MATLAB(Grade 2012,Class 3,Major of Communication Engineering,School of Physics and Telecommunication Engineering of Shaanxi University of Technology,Hanzhong 723000,Shaanxi)Tutor: Jing Mingying[Abstract]: The main content of this paper is to understand the mathematical model of the AM signal and the modulation and the demodulation method. Demodulation different methods in different circumstances of the demodulation signal to noise ratio the results of methods that better, to make the comparison. Requirement is more than double the sound and the AM signal modulation and demodulation. AM modulation first study of its function and in real life use. AM demodulation followed by research, as well as some related knowledge, as well as through its use of communications more in-depth understanding of it. AM signal from the tone of the mathematical model and the modulation and demodulation methods,the two-tone AM signal to draw a mathematical model and the block diagram of modulation and demodulation and modulation and demodulation waveforms. MATLAB programming language to use to achieve the two-tone AM signal modulation and demodulation, given the different circumstances of the demodulation signal to noise ratio compared the results.[Keywords]: AM signal, Modulation, Demodulation, Noise ratio signal, MATLAB目录1.绪论背景以及意义现在的社会越来越发达,科学技术不断的在更新,在信号和模拟通信的中心问题是要把载有消息的信号经系统加工处理后,送入信道进行传送,从而实现消息的相互传递。
基于MATLAB的AM信号的调制摘要:调制在通信系统中有十分重要的作用。
通过调制,不仅可以进行频谱搬移,把调制信号的频谱搬移到所希望的位置上,从而将调制信号转换成适合于传播的已调信号,而且它对系统的传输有效性和传输的可靠性有着很大的影响,调制方式往往决定了一个通信系统的性能。
MATLAB软件广泛用于数字信号分析,系统识别,时序分析与建模,神经网络、动态仿真等方面有着广泛的应用。
本课题利用MATLAB软件对DSB调制解调系统进行模拟仿真,分别利用300HZ正弦波和矩形波,对30KHZ正弦波进行调制,观察调制信号、已调信号和解调信号的波形和频谱分布,并在解调时引入高斯白噪声,对解调前后信号进行信噪比的对比分析,估计DSB调制解调系统的性能。
关键词:AM信号,调制,调制系数,功率,MATLAB引言:调制就是使一个信号(如光、高频电磁振荡等)的某些参数(如振幅、频率等)按照另一个欲传输的信号(如声音、图像等)的特点变化的过程。
用所要传播的语言或音乐信号去改变高频振荡的幅度,使高频振荡的幅度随语言或音乐信号的变化而变化,这个控制过程就称为调制。
其中语言或音乐信号叫做调制信号,调制后的载波就载有调制信号所包含的信息,称为已调波[1]。
解调是调制的逆过程,它的作用是从已调波信号中取出原来的调制信号。
对于幅度调制来说,解调是从它的幅度变化提取调制信号的过程。
对于频率调制来说,解调是从它的频率变化提取调制信号的过程。
频率解调要比幅度解调复杂,用普通检波电路是无法解调出调制信号的,必须采用频率检波方式,如各类鉴频器电路。
关于鉴频器电路可参阅有关资料,这里不再细述。
随着电脑的发展和普及,调制与解调在电脑通信中也有着十分重要的作用。
通过称为Modem 的调制解调器,将电脑的数字信息转换成能沿着电话线传递的模拟形式,在接收端由Modem 将它转换回数字信息。
其中将数字信息转换成模拟形式称调制,将模拟形式转换回数字信息称为解调。
课程设计任务书学生姓名:XXX 专业班级:XXXXXX指导教师:XXX 工作单位:信息工程学院题目:AM信号的仿真分析初始条件:1)Matlab 软件2)通信原理基础知识设计内容和要求:调制信号:分别为300Hz正弦信号和矩形信号;载波频率:30kHz;解调方式:分别为包络解调和同步解调;要求:画出以下三种情况下调制信号、已调信号、解调信号的波形、频谱以及解调器输入输出信噪比的关系曲线;1)调制信号幅度=0.8×载波幅度;2)调制信号幅度=载波幅度;3)调制信号幅度=1.5×载波幅度;指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)Abstract (II)1 课程设计内容与要求 (1)1.1 课程设计内容 (1)1.2设计要求 (1)2 调制和解调原理 (2)2.1调制与解调 (2)2.2 幅度调制的原理 (2)3 同步解调与包络解调 (3)3.1同步解调 (3)3.2 包络解调 (4)4 噪声与抗噪声性能模型分析 (5)4.1 噪声的分类 (5)4.2 本文噪声模型 (5)4.3 抗噪声性能的分析模型 (5)4.4相干解调的抗噪声性能 (6)5 AM基于matlab的调制与解调 (8)5.1载波频率为30KHz的载波信号 (8)5.2频率为300Hz的正弦波调制 (9)5.2.1调制信号幅度=0.8×载波幅度 (9)5.2.2调制信号幅度=载波幅度时的调制信号 (10)5.2.3调制信号幅度=1.5×载波幅度时的调制信号 (11)5.3频率为300Hz的正弦波解调与输入输出信噪比曲线 (11)5.3.1 调制信号幅度=0.8×载波信号幅度 (11)5.3.2调制信号幅度=载波信号幅度 (14)5.3.3调制信号幅度=1.5×载波信号幅度 (15)5.4调制信号为300Hz矩形脉冲波 (17)5.4.1调制信号幅度=0.8×载波信号幅度 (17)5.4.2调制信号幅度=载波信号幅度 (18)5.4.3调制信号幅度=1.5×载波信号幅度 (19)5.5 频率为300Hz的矩形波解调及输入输出信噪比的关系曲线 (19)5.5.1 调制信号幅度=0.8×载波信号幅度 (19)5.5.2调制信号幅度=载波信号幅度 (22)5.5.3调制信号幅度=1.5×载波信号幅度 (23)6 小结与体会 (25)7 参考文献 (26)摘要调制在通信系统中有十分重要的作用。
无线通信实验报告院系名称:信息科学与工程学院专业班级:电信班学生姓名:学号:授课教师:2014 年11 月 6 日实验一 高斯衰落信道建模一、基本原理QPSK 信号可以看成是对两个正交的载波进行多电平双边带调制后所得信号的叠加,因此可以用正交调制的方法得到QPSK 信号。
QPSK 信号的星座如图4.1.1所示:图1.1 QPSK 信号星座图从AWGN 信道中,在一个信号区间内接收到的带宽信号可以表示为()()()()()cos(2)()sin(2)m m c c s c r t u t n t u t n t f t n t f t ππ=+=+-这里()c n t 和()s n t 是加性噪声的两个正交分量。
可以将这个接收信号与1()()cos(2)T c t g t f t ψπ=,2()sin(2)T c g t f t ψπ=-给出的1()t ψ和2()t ψ作相关,两个相关器的输出产生受噪声污损的信号分量,它们可表示为22()m s s s m m r s n n n M Mππξξ=+=++ 式中c n 和s n 定义为 1()()2c T c n g t n t dt ∞-∞=⎰ 1()()2s T s n g t n t dt ∞-∞=⎰ 这两个正交噪声分量()c n t 和()s n t 是零均值,互不相关的高斯随机过程。
这样,()()0c s E n E n ==和()0c s E n n =。
c n 和s n 的方差是 220()()2c s N E n E n == 最佳检测器将接收信号向量r 投射到M 个可能的传输信号向量{m s }之一上去,并选取对应于最大投影的向量。
据此,得到相关准则为(,)m m C r s r s =•,m=0,1,…,M-1由于全部信号都具有相等的能量,因此,对数字相位调制一种等效的检测器标准是计算接收信号向量r=(c r ,s r )的相位为 arctan s r cr r θ= 并从信号集{m s }中选取其相位最接近r θ的信号。
AM调制MATLAB仿真程序% AM_amplitude_modulation_test.mclc;close all;clear all;%--参数%--采样参数fs =10e6; %--数字采样速率, fs >= 2(fc+fm+0.5*Bm), 这⾥取 fs = 10 MHzN =200; %--采样点个数, N > fix(2*fs/fm); %--⾄少⼀个周期内采两个点n =0:N-1; %--采样序列t =n/fs; %--采样时间序列%--调制信号Am =1; %--归⼀化幅值fm =0.1e6; %--调制信号的频率, 这⾥取 fm = 0.1MHzBm = 0;%--带宽,这⾥取为单频信号,所以 Bm=0%-----------------------%--调制信号表达式%----------------------sm = Am*cos(2*pi*fm*t);%--载波信号Ac =1; %--归⼀化幅值fc =1e6; %--载波频率, ⼀般 fc > fm, 这⾥取 fc = 1 MHz%-----------------------%--载波信号表达式%----------------------sc = Ac*cos(2*pi*fc*t);%--调制度mf = 0.5;%--mf 取值在 0 和 1 之间. mf = 0 表⽰没有调制;mf =1 是过调制的边界%--普通幅度调制:载波+双边带 %-- 点乘:.* , 两个相等长度的⽮量对应点相乘% s_am = (1+mf*Am*cos(2*pi*fm*t)).*(Ac*cos(2*pi*fc*t));%----------------------------%--普通幅度调制, 调幅波表达式%----------------------------s_am_general = (1+mf*sm).*sc; %--%--双边带调制:抑制载波 %-- 点乘:.* , 两个相等长度的⽮量对应点相乘% s_am_DSB = mf*Am*cos(2*pi*fm*t).*(Ac*cos(2*pi*fc*t));%----------------------------%--双边带调制, 调幅波表达式%----------------------------s_am_DSB = mf*sm.*sc; %--%--单边带调制:抑制载波+抑制其中⼀个边带% s_am_SSB_UP = ⾼通滤波器{Am*mf*cos(2*pi*fm*t).*Ac*cos(2*pi*fc*t)};% = 0.5*Am*mf*cos(2*pi*(fm+fc)*t);%--上边带% s_am_SSB_DW = 低通滤波器{Am*mf*cos(2*pi*fm*t).*Ac*cos(2*pi*fc*t)};% = 0.5*Am*mf*cos(2*pi*(fm-fc)*t);%--下边带,DW 表⽰ DOWN%----------------------------%--单边带调制, 调幅波表达式%----------------------------s_am_SSB_UP = 0.5*Am*mf*cos(2*pi*(fm+fc)*t); %--上边带s_am_SSB_DW = 0.5*Am*mf*cos(2*pi*(fm-fc)*t); %--下边带,DW 表⽰ DOWN%--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ s_am = s_am_general; %--普通幅度调制(包含:载波+上边带+下边带)%--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ %--频谱计算fft_sm = fft(sm);fft_sc = fft(sc);fft_s_am = fft(s_am);f = ((fix(-N/2)):1:fix(N/2)-1)*fs/N;%--x轴坐标,适合 fftshift 之后,画图使⽤%--绘图figure('color','w')subplot(3,2,1)plot(sc)title('载波信号')axis tightsubplot(3,2,5)plot(s_am)title('调幅信号')axis tightsubplot(3,2,2)plot(f,fftshift(abs(fft_sm)))title('基带信号-频谱')axis tightsubplot(3,2,4)plot(f,fftshift(abs(fft_sc)))title('载波信号-频谱')axis tightsubplot(3,2,6)plot(f,fftshift(abs(fft_s_am)))title('调幅信号-频谱')axis tightsuptitle('幅度调制-普通幅度调制')%--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ s_am = s_am_DSB; %--双边带幅度调制(抑制:载波)%--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ %--频谱计算fft_sm = fft(sm);fft_sc = fft(sc);fft_s_am = fft(s_am);f = ((fix(-N/2)):1:fix(N/2)-1)*fs/N;%--x轴坐标,适合 fftshift 之后,画图使⽤%--绘图figure('color','w')subplot(3,2,1)plot(sm)title('基带信号')axis tight %--使得图形紧凑subplot(3,2,3)plot(sc)title('载波信号')axis tightsubplot(3,2,5)plot(s_am)title('调幅信号')axis tightsubplot(3,2,2)plot(f,fftshift(abs(fft_sm)))title('基带信号-频谱')axis tightsubplot(3,2,4)plot(f,fftshift(abs(fft_sc)))title('载波信号-频谱')axis tightsubplot(3,2,6)plot(f,fftshift(abs(fft_s_am)))title('调幅信号-频谱')axis tightsuptitle('幅度调制-双边带调制')%--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ s_am = s_am_SSB_UP; %--单边带幅度调制(抑制:载波+下边带)%--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ %--频谱计算fft_sm = fft(sm);fft_sc = fft(sc);fft_s_am = fft(s_am);f = ((fix(-N/2)):1:fix(N/2)-1)*fs/N;%--x轴坐标,适合 fftshift 之后,画图使⽤%--绘图figure('color','w')subplot(3,2,1)plot(sc)title('载波信号')axis tightsubplot(3,2,5)plot(s_am)title('调幅信号')axis tightsubplot(3,2,2)plot(f,fftshift(abs(fft_sm)))title('基带信号-频谱')axis tightsubplot(3,2,4)plot(f,fftshift(abs(fft_sc)))title('载波信号-频谱')axis tightsubplot(3,2,6)plot(f,fftshift(abs(fft_s_am)))title('调幅信号-频谱')axis tightsuptitle('幅度调制-单边调制-上边带')%--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ s_am = s_am_SSB_DW; %--单边带幅度调制(抑制:载波+上边带)%--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ %--频谱计算fft_sm = fft(sm);fft_sc = fft(sc);fft_s_am = fft(s_am);f = ((fix(-N/2)):1:fix(N/2)-1)*fs/N;%--x轴坐标,适合 fftshift 之后,画图使⽤%--绘图figure('color','w')subplot(3,2,1)plot(sm)title('基带信号')axis tight %--使得图形紧凑subplot(3,2,3)plot(sc)title('载波信号')axis tightsubplot(3,2,5)plot(s_am)title('调幅信号')axis tightsubplot(3,2,2)plot(f,fftshift(abs(fft_sm)))title('基带信号-频谱')axis tightsubplot(3,2,4)plot(f,fftshift(abs(fft_sc)))title('载波信号-频谱')axis tightsubplot(3,2,6)plot(f,fftshift(abs(fft_s_am)))title('调幅信号-频谱')axis tightsuptitle('幅度调制-单边调制-下边带')。
am调制matlab代码-回复如何在MATLAB中进行AM调制。
介绍AM调制的原理、MATLAB的使用方法以及实现AM调制的代码示例。
AM调制是一种常见的调制技术,广泛应用于无线通信系统中。
它通过改变载波信号的幅度来传输信息信号,常用于广播电台和对讲机等通信设备中。
在本文中,我们将学习如何在MATLAB中实现AM调制。
下面是一步一步的说明。
第一步:理解AM调制的原理AM调制的原理是将信息信号与载波信号相乘,得到的乘积信号即为调制后的信号。
信息信号通常是低频信号,而载波信号是高频信号。
乘积信号的振幅随着信息信号的变化而变化,这样就实现了信息的传输。
第二步:创建信号源首先,我们需要创建一个信息信号源。
在MATLAB中,我们可以使用`sin`函数来生成一个连续的正弦波信号,并指定其频率和振幅。
例如,我们可以创建一个频率为100Hz,振幅为1的信号,代码如下:f = 100; 信号频率为100Hzt = 0:0.001:1; 信号时间从0到1秒,步长为0.001秒info_signal = sin(2*pi*f*t); 生成信息信号第三步:创建载波信号接下来,我们需要创建一个高频的载波信号。
同样地,我们可以使用`sin`函数来生成一个正弦波,并指定其频率和振幅。
假设我们创建一个频率为1000Hz,振幅为1的载波信号,代码如下:fc = 1000; 载波频率为1000Hzcarrier_signal = sin(2*pi*fc*t); 生成载波信号第四步:进行AM调制现在,我们将信息信号与载波信号相乘,即可得到调制后的信号。
在MATLAB中,我们可以使用`.*`运算符来进行元素级乘法。
例如,代码如下:am_signal = info_signal .* carrier_signal; 进行AM调制第五步:可视化调制结果最后,我们可以使用MATLAB提供的绘图函数来可视化调制结果。
例如,我们可以绘制调制前后信号的波形图和频谱图。
通信系统模拟调制系统仿真一 课题内容 AM FM PM 调制 二 设计要求1.掌握AM FM PM 调制和解调原理。
2.学会Matlab 仿真软件在AM FM PM 调制和解调中的应用。
3.分析波形及频谱1.AM 调制解调系统设计1.振幅调制产生原理所谓调制,就是在传送信号的一方将所要传送的信号附加在高频振荡上,再由天线发射出去。
这里高频振荡波就是携带信号的运载工具,也叫载波。
振幅调制,就是由调制信号去控制高频载波的振幅,直至随调制信号做线性变化。
在线性调制系列中,最先应用的一种幅度调制是全调幅或常规调幅,简称为调幅(AM )。
在频域中已调波频谱是基带调制信号频谱的线性位移;在时域中,已调波包络与调制信号波形呈线性关系。
设正弦载波为)cos()(0ϕω+=t A t c c式中,A 为载波幅度;c ω为载波角频率;0ϕ为载波初始相位(通常假设0ϕ=0).调制信号(基带信号)为)(t m 。
根据调制的定义,振幅调制信号(已调信号)一般可以表示为)cos()()(t t Am t s c m ω=设调制信号)(t m 的频谱为)(ωM ,则已调信号)(t s m 的频谱)(ωm S :)]()([2)(c c m M M AS ωωωωω-++=2.调幅电路方案分析标准调幅波(AM )产生原理调制信号是只来来自信源的调制信号(基带信号),这些信号可以是模拟的,亦可以是数字的。
为首调制的高频振荡信号可称为载波,它可以是正弦波,亦可以是非正弦波(如周期性脉冲序列)。
载波由高频信号源直接产生即可,然后经过高频功率放大器进行放大,作为调幅波的载波,调制信号由低频信号源直接产生,二者经过乘法器后即可产生双边带的调幅波。
设载波信号的表达式为t c ωcos ,调制信号的表达式为t A t m m m ωcos )(= ,则调幅信号的表达式为t t m A t s c AM ωcos )]([)(0+=图5.1 标准调幅波示意图 3.信号解调思路从高频已调信号中恢复出调制信号的过程称为解调(demodulation ),又称为检波(detection )。
AM调制与解调100%% AMµ÷ÖÆfigure('Name','Ðźŵ÷ÖÆ¹ý³ÌÖв¨Ðμ°ÆäƵÆ×','NumberTitle','off')a0=1;f0=2000;fc=20000;fs=1000000;t=[1:0.000001:4];am1=0*cos(2*pi*f0*t); %µ÷ÖÆÐźÅam=a0+am1;t1=cos(2*pi*fc*t); %ÔØ²¨s_am=am.*t1;AM1=fft(am1); T1=fft(t1); S_AM=fft(s_am);f=(0:3000000)*fs/3000001-fs/2;subplot(3,2,1); plot(t(1:1000),am1(1:1000)); title('ÐÅÏ¢ÐźŲ¨ÐÎ');subplot(3,2,2); plot(f,fftshift(abs(AM1))); title('ÐÅÏ¢ÐÅºÅÆµÆ×');subplot(3,2,3); plot(t(1:1000),t1(1:1000)); title('ÔØ²¨ÐźÅ');subplot(3,2,4); plot(f,fftshift(abs(T1))); title('ÔØ²¨ÐÅºÅÆµÆ×');subplot(3,2,5); plot(t(1:1000),s_am(1:1000)); title('Òѵ÷ÐźÅ');subplot(3,2,6); plot(f,fftshift(abs(S_AM))); title('Òѵ÷ÐÅºÅÆµÆ×');%²úÉúÔëÉùfigure('Name','Ìí¼ÓÔëÉù¼°´øÍ¨Â˲¨¹ý³Ì²¨Ðμ°ÆäƵÆ×','NumberTitle','off ');snr=5;y=awgn(s_am,snr);fcuts=[16000 17500 22500 24000];mags=[0 1 0];devs=[0.05 0.01 0.05];[n,Wn,beta,ftype]=kaiserord(fcuts,mags,devs,fs);hh=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');[H,f]=freqz(hh,1,1024,fs);st_p=fftfilt(hh,y);Q=fft(st_p);Y=fft(y);f=(0:3000000)*fs/3000001-fs/2;subplot(2,2,1);plot(t(1500001:1501000),y(1500001:1501000));title('Ìí¼ÓÔëÉùºóÐźŲ¨ÐÎ');subplot(2,2,2);plot(f,fftshift(abs(Y)));title('Ìí¼ÓÔëÉùºóÐÅºÅÆµÆ×');subplot(2,2,3);plot(t(1500001:1501000),st_p(1500001:1501000));title('´øÍ¨Â˲¨ºóÐźŲ¨ÐÎ');subplot(2,2,4); plot(f,fftshift(abs(Q)));title('´øÍ¨Â˲¨ºóÐÅºÅÆµÆ×');%½âµ÷figure('Name','Ïà¸É½âµ÷ËùµÃ²¨Ðμ°ÆäƵÆ×','NumberTitle','off');ss_am=st_p.*t1;SS_AM=fft(ss_am)f=(0:3000000)*fs/3000001-fs/2;subplot(2,1,1);plot(t(1500001:1503000),ss_am(1500001:1503000));title( 'Ïà³ËÐźÅ');subplot(2,1,2); plot(f,fftshift(abs(SS_AM)));title('Ïà³ËÐÅºÅÆµÆ×');fcuts1=[2500,30000];mags1=[1 0];devs1=[0.01 0.05];[n,Wn,beta,ftype]=kaiserord(fcuts1,mags1,devs1,fs);hh1=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');[H,f]=freqz(hh1,1,1024,fs);m0=fftfilt(hh1,ss_am);M0=fft(m0);f=(0:3000000)*fs/3000001-fs/2;figuresubplot(2,1,1);plot(t(1500001:1501000),m0(1500001:1501000));title('½âµ÷ÐźÅ');subplot(2,1,2); plot(f,fftshift(abs(M0)));title('½âµ÷ÐÅºÅÆµÆ×');11.0005 1.001-101信息信号波形-505x 105012x 106信息信号频谱11.0005 1.001-101载波信号-505x 105012x 106载波信号频谱11.00051.001-202已调信号-55x 105012x 106已调信号频谱2.52.50052.501-4-2024添加噪声后信号波形-505x 105051015x 105添加噪声后信号频谱2.52.50052.501-2024带通滤波后信号波形-55x 10500.511.526带通滤波后信号频谱50%% AMµ÷ÖÆfigure('Name','Ðźŵ÷ÖÆ¹ý³ÌÖв¨Ðμ°ÆäƵÆ×','NumberTitle','off')2.5 2.5005 2.501 2.5015 2.502 2.5025 2.503 2.5035-1012相乘信号-5-4-3-2-1012345x 1050510155相乘信号频谱2.52.50012.50022.50032.50042.50052.50062.50072.50082.5009 2.501-0.500.51解调信号-5-4-3-2-1012345x 1050510155解调信号频谱a0=2;f0=2000;fc=20000;fs=1000000;t=[1:0.000001:4];am1=0*cos(2*pi*f0*t); %µ÷ÖÆÐźÅam=a0+am1;t1=cos(2*pi*fc*t); %ÔØ²¨s_am=am.*t1;AM1=fft(am1); T1=fft(t1); S_AM=fft(s_am);f=(0:3000000)*fs/3000001-fs/2;subplot(3,2,1); plot(t(1:1000),am1(1:1000)); title('ÐÅÏ¢ÐźŲ¨ÐÎ');subplot(3,2,2); plot(f,fftshift(abs(AM1))); title('ÐÅÏ¢ÐÅºÅÆµÆ×');subplot(3,2,3); plot(t(1:1000),t1(1:1000)); title('ÔØ²¨ÐźÅ');subplot(3,2,4); plot(f,fftshift(abs(T1))); title('ÔØ²¨ÐÅºÅÆµÆ×');subplot(3,2,5); plot(t(1:1000),s_am(1:1000)); title('Òѵ÷ÐźÅ');subplot(3,2,6); plot(f,fftshift(abs(S_AM))); title('Òѵ÷ÐÅºÅÆµÆ×');%²úÉúÔëÉùfigure('Name','Ìí¼ÓÔëÉù¼°´øÍ¨Â˲¨¹ý³Ì²¨Ðμ°ÆäƵÆ×','NumberTitle','off ');snr=5;y=awgn(s_am,snr);fcuts=[16000 17500 22500 24000];mags=[0 1 0];devs=[0.05 0.01 0.05];[n,Wn,beta,ftype]=kaiserord(fcuts,mags,devs,fs);hh=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');[H,f]=freqz(hh,1,1024,fs);st_p=fftfilt(hh,y);Q=fft(st_p);Y=fft(y);f=(0:3000000)*fs/3000001-fs/2;subplot(2,2,1);plot(t(1500001:1501000),y(1500001:1501000));title('Ìí¼ÓÔëÉùºóÐźŲ¨ÐÎ');subplot(2,2,2);plot(f,fftshift(abs(Y)));title('Ìí¼ÓÔëÉùºóÐÅºÅÆµÆ×');subplot(2,2,3);plot(t(1500001:1501000),st_p(1500001:1501000));title('´øÍ¨Â˲¨ºóÐźŲ¨ÐÎ');subplot(2,2,4); plot(f,fftshift(abs(Q)));title('´øÍ¨Â˲¨ºóÐÅºÅÆµÆ×');%½âµ÷figure('Name','Ïà¸É½âµ÷ËùµÃ²¨Ðμ°ÆäƵÆ×','NumberTitle','off');ss_am=st_p.*t1;SS_AM=fft(ss_am)f=(0:3000000)*fs/3000001-fs/2;subplot(2,1,1);plot(t(1500001:1503000),ss_am(1500001:1503000));title( 'Ïà³ËÐźÅ');subplot(2,1,2); plot(f,fftshift(abs(SS_AM)));title('Ïà³ËÐÅºÅÆµÆ×'); fcuts1=[2500,30000];mags1=[1 0];devs1=[0.01 0.05];[n,Wn,beta,ftype]=kaiserord(fcuts1,mags1,devs1,fs);hh1=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');[H,f]=freqz(hh1,1,1024,fs);m0=fftfilt(hh1,ss_am);M0=fft(m0);f=(0:3000000)*fs/3000001-fs/2;figuresubplot(2,1,1);plot(t(1500001:1501000),m0(1500001:1501000));title('½âµ÷ÐźÅ');subplot(2,1,2); plot(f,fftshift(abs(M0)));title('½âµ÷ÐÅºÅÆµÆ×');11.0005 1.001-101信息信号波形-505x 1050126信息信号频谱11.0005 1.001-101载波信号-505x 1050126载波信号频谱11.00051.001-505已调信号-55x 105024x 106已调信号频谱2.52.50052.501-505添加噪声后信号波形-505x 1050123x 106添加噪声后信号频谱2.52.50052.501-4-2024带通滤波后信号波形-55x 105012346带通滤波后信号频谱2.5 2.5005 2.501 2.5015 2.502 2.5025 2.503 2.5035-10123相乘信号-5-4-3-2-1012345x 10501236相乘信号频谱0%% AMµ÷ÖÆfigure('Name','Ðźŵ÷ÖÆ¹ý³ÌÖв¨Ðμ°ÆäƵÆ×','NumberTitle','off')a0=10^100;f0=2000;fc=20000;fs=1000000;t=[1:0.000001:4];am1=0*cos(2*pi*f0*t); %µ÷ÖÆÐźÅam=a0+am1;t1=cos(2*pi*fc*t); %ÔØ²¨s_am=am.*t1;AM1=fft(am1); T1=fft(t1); S_AM=fft(s_am);f=(0:3000000)*fs/3000001-fs/2;subplot(3,2,1); plot(t(1:1000),am1(1:1000)); title('ÐÅÏ¢ÐźŲ¨ÐÎ');subplot(3,2,2); plot(f,fftshift(abs(AM1))); title('ÐÅÏ¢ÐÅºÅÆµÆ×');2.52.50012.50022.50032.50042.50052.50062.50072.50082.5009 2.50100.511.5解调信号-5-4-3-2-1012345x 10501236解调信号频谱subplot(3,2,3); plot(t(1:1000),t1(1:1000)); title('ÔØ²¨ÐźÅ');subplot(3,2,4); plot(f,fftshift(abs(T1))); title('ÔØ²¨ÐÅºÅÆµÆ×');subplot(3,2,5); plot(t(1:1000),s_am(1:1000)); title('Òѵ÷ÐźÅ');subplot(3,2,6); plot(f,fftshift(abs(S_AM))); title('Òѵ÷ÐÅºÅÆµÆ×');%²úÉúÔëÉùfigure('Name','Ìí¼ÓÔëÉù¼°´øÍ¨Â˲¨¹ý³Ì²¨Ðμ°ÆäƵÆ×','NumberTitle','off ');snr=5;y=awgn(s_am,snr);fcuts=[16000 17500 22500 24000];mags=[0 1 0];devs=[0.05 0.01 0.05];[n,Wn,beta,ftype]=kaiserord(fcuts,mags,devs,fs);hh=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');[H,f]=freqz(hh,1,1024,fs);st_p=fftfilt(hh,y);Q=fft(st_p);Y=fft(y);f=(0:3000000)*fs/3000001-fs/2;subplot(2,2,1);plot(t(1500001:1501000),y(1500001:1501000));title('Ìí¼ÓÔëÉùºóÐźŲ¨ÐÎ');subplot(2,2,2);plot(f,fftshift(abs(Y)));title('Ìí¼ÓÔëÉùºóÐÅºÅÆµÆ×');subplot(2,2,3);plot(t(1500001:1501000),st_p(1500001:1501000));title('´øÍ¨Â˲¨ºóÐźŲ¨ÐÎ');subplot(2,2,4); plot(f,fftshift(abs(Q)));title('´øÍ¨Â˲¨ºóÐÅºÅÆµÆ×');%½âµ÷figure('Name','Ïà¸É½âµ÷ËùµÃ²¨Ðμ°ÆäƵÆ×','NumberTitle','off');ss_am=st_p.*t1;SS_AM=fft(ss_am)f=(0:3000000)*fs/3000001-fs/2;subplot(2,1,1);plot(t(1500001:1503000),ss_am(1500001:1503000));title( 'Ïà³ËÐźÅ');subplot(2,1,2); plot(f,fftshift(abs(SS_AM)));title('Ïà³ËÐÅºÅÆµÆ×'); fcuts1=[2500,30000];mags1=[1 0];devs1=[0.01 0.05];[n,Wn,beta,ftype]=kaiserord(fcuts1,mags1,devs1,fs);hh1=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');[H,f]=freqz(hh1,1,1024,fs);m0=fftfilt(hh1,ss_am);M0=fft(m0);f=(0:3000000)*fs/3000001-fs/2;figuresubplot(2,1,1);plot(t(1500001:1501000),m0(1500001:1501000));title('½âµ÷ÐźÅ');subplot(2,1,2); plot(f,fftshift(abs(M0)));title('½âµ÷ÐÅºÅÆµÆ×');11.0005 1.001-101信息信号波形-505x 1050126信息信号频谱1 1.0005 1.001-101载波信号-505x 1050126载波信号频谱11.00051.001-101x 10100已调信号-55x 105012x 10106已调信号频谱2.52.5005 2.501-1-0.500.51x 10100添加噪声后信号波形-505x 105051015x 10105添加噪声后信号频谱2.52.5005 2.501-2-1012x 10100带通滤波后信号波形-55x 1051x 10106带通滤波后信号频谱FM 调制与解调%%FMfigure('Name','FMµ÷ÖÆ²¨ÐÎÓëÆµÆ×')2.5 2.5005 2.501 2.5015 2.502 2.5025 2.503 2.5035-50510x 1099相乘信号-5-4-3-2-1012345x 105051015105相乘信号频谱2.52.50012.50022.50032.50042.50052.50062.50072.50082.5009 2.5013.93.913.923.93x 1099解调信号-1-0.500.51x 105123105解调信号频谱f0=2000; fc=20000; fs=1000000; Am=1; kf=0.5; Tc=8; Ta=0.001; dt=0.000001;t=[0:1/fs:3];f=(0:length(t)-1)*fs/(length(t))-fs/2;fm0=cos(2*pi*f0*t);mt=fm0;%»ý·ÖÆ÷Éè¼Æw1=0;w2=0;for m=1:length(t)w1=mt(m)+w2;w2=mt(m)+w1;fi(m)=w1/(2*fs);endfi=fi*2*pi/max(abs(fi));I=cos(kf*fi);Q=sin(kf*fi);y1=Am*cos(2*pi*fc*t).*I-Am*sin(2*pi*fc*t).*Q;subplot(2,1,1);plot(t,y1);title('²¨ÐÎ')axis([1e-3 4e-3 -2 2]);Y1=fft(y1);subplot(2,1,2);plot(f,fftshift(abs(Y1))/1e6); title('ƵÆ×') %%ÔØ²¨ÆµÆ×axis([-4e4 4e4 0 1]);figure('Name','FMµ÷ÖÆºó¼ÓÔëÉù²¨ÐÎÓë½âµ÷ºó²¨ÐÎÒÔ¼°Â˳ýÖ±Á÷·ÖÁ¿ºóµÄ²¨ÐÎ')y1o=awgn(y1,40);subplot(3,1,1);plot(t,y1o); title('¼ÓÔëÉùºó²¨ÐÎ') %%¼ÓÔëÉùºóµÄÐźÅaxis([1e-3 4e-3 -2 2]);%%´øÍ¨Â˲¨KSband=2*(3+1)*f0;fcutsb=[fc-KSband-2000 fc-KSbandfc+KSbandfc+KSband+2000]; %%½ÓÊÕ»úǰ¶Ë´øÍ¨Â˲¨magsb=[0 1 0];devsb=[0.05 0.01 0.05];[nb,Wnb,betab,ftypeb]=kaiserord(fcutsb,magsb,devsb,fs);hhb=fir1(nb,Wnb,ftypeb,kaiser(nb+1,betab),'noscale'); %´øÍ¨Â˲¨Æ÷£»st_pb=fftfilt(hhb,y1o);subplot(3,1,2);st_pb=st_pb/1e6;plot(t,st_pb); title('´øÍ¨Â˲¨Æ÷ºóµÄ²¨ÐÎ')axis([1e-3 4e-3 -2e-6 2e-6]);%΢·ÖÆ÷Éè¼Æfor i=1:length(t)-1 %½ÓÊÕÐźÅͨ¹ý΢·ÖÆ÷´¦Àídiff_st_pb(i)=(st_pb(i+1)-st_pb(i))/dt;endsfm=abs(hilbert(diff_st_pb));subplot(3,1,2);plot(t,[sfm*20 0]);axis([1e-3 4e-3 0 4]);%%¸ôÖ±% KSbandh=2*(3+1)*f0;fcutsh=[0.01 3000];magsh=[0 1];devsh=[0.01 0.05];[nh,Wnh,betah,ftypeh]=kaiserord(fcutsh,magsh,devsh,fs);hhh=fir1(nh,Wnh,ftypeh,kaiser(nh+1,betah),'noscale');sfm_out=fftfilt(hhh,sfm*20);subplot(3,1,3);plot(t,[sfm_out 0]);title('¸ôÖ±ºóµÄ²¨ÐÎ')axis([1e-3 4e-3 -2 2]);11.522.533.54x 10-3-2-1012波形-4-3-2-101234x 10400.51频谱11.522.533.54x 10-3-202加噪声后波形11.522.53 3.54x 10-302411.522.533.54x 10-3-202隔直后的波形。
function varargout = am_mod(varargin)% Edit the above text to modify the response to help am_mod% Last Modified by GUIDE v2.5 04-Oct-2007 22:39:46% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @am_mod_OpeningFcn, ...'gui_OutputFcn', @am_mod_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before am_mod is made visible.function am_mod_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% varargin command line arguments to am_mod (see VARARGIN) set(gcf,'Color',[1 1 0]);set(handles.carrier,'Value',0.5);set(handles.mod,'Value',0.5);handles.ejex=0:1/1000:.5;axes(handles.axes1)y_m=cos(2*pi*25*handles.ejex)+1;plot(handles.ejex,y_m,'--','Color',[1 0 0]);hold on;y_c=cos(2*pi*100*handles.ejex);y_am=y_m.*y_c;plot(handles.ejex,y_am)hold off;title('AM SIGNAL');ylabel('Amplitude');xlabel('Time (s)');axes(handles.axes2)plotspec(y_am,1/1000);title('SPECTRUM');%zoom on% Choose default command line output for am_modhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes am_mod wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout = am_mod_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} = handles.output;% --- Executes on slider movement.function mod_Callback(hObject, eventdata, handles)% hObject handle to mod (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'Value') returns position of slider% get(hObject,'Min') and get(hObject,'Max') to determine range of slider f_m=50*get(hObject,'Value');f_c=200*get(handles.carrier,'Value');set(handles.fc,'String',f_c);set(handles.fm,'String',f_m);axes(handles.axes1)y_m=cos(2*pi*f_m*handles.ejex)+1;plot(handles.ejex,y_m,'--','Color',[1 0 0]);hold on;y_c=cos(2*pi*f_c*handles.ejex);y_am=y_m.*y_c;plot(handles.ejex,y_am)hold off;title('AM SIGNAL');ylabel('Amplitude');xlabel('Time (s)');axes(handles.axes2)plotspec(y_am,1/1000)title('SPECTRUM');a=get(handles.zoom,'Value');if a==1zoom on;set(handles.zoom,'String','ZOOM ON');elsezoom off;set(handles.zoom,'String','ZOOM OFF');end% --- Executes during object creation, after setting all properties.function mod_CreateFcn(hObject, eventdata, handles)% hObject handle to mod (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: slider controls usually have a light gray background.if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]);end% --- Executes on slider movement.function carrier_Callback(hObject, eventdata, handles)% hObject handle to carrier (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'Value') returns position of slider% get(hObject,'Min') and get(hObject,'Max') to determine range of slider f_c=200*get(hObject,'Value');f_m=50*get(handles.mod,'Value');set(handles.fc,'String',f_c);set(handles.fm,'String',f_m);axes(handles.axes1)y_m=cos(2*pi*f_m*handles.ejex)+1;plot(handles.ejex,y_m,'--','Color',[1 0 0]);hold on;y_c=cos(2*pi*f_c*handles.ejex);y_am=y_m.*y_c;plot(handles.ejex,y_am)hold off;title('AM SIGNAL');ylabel('Amplitude');xlabel('Time (s)');axes(handles.axes2)plotspec(y_am,1/1000)title('SPECTRUM');a=get(handles.zoom,'Value');if a==1zoom on;set(handles.zoom,'String','ZOOM ON');elsezoom off;set(handles.zoom,'String','ZOOM OFF');end% --- Executes during object creation, after setting all properties.function carrier_CreateFcn(hObject, eventdata, handles)% hObject handle to carrier (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: slider controls usually have a light gray background.if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]);end% --- Executes on button press in zoom.function zoom_Callback(hObject, eventdata, handles)% hObject handle to zoom (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hint: get(hObject,'Value') returns toggle state of zooma=get(hObject,'Value');if a==1zoom on;set(handles.zoom,'String','ZOOM ON');elsezoom off;set(handles.zoom,'String','ZOOM OFF'); endfunction plotspec(w,Ts)%By: Diego Barrag醤G.n=floor(log(length(w))/log(2));N=2^n;fw=abs(fft (w(1:N)));ssf=(-N/2:N/2-1)/(Ts*N);fws=fftshift(fw);plot(ssf,fws);xlabel('Frequency')ylabel('Magnitude')。