FM调制解调matlab代码

合集下载

基于matlab的-AM-FM调制与解调报告

基于matlab的-AM-FM调制与解调报告

基于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中的信号调制与解调技巧

MATLAB中的信号调制与解调技巧

MATLAB中的信号调制与解调技巧随着科技的不断发展,无线通信越来越成为人们生活中不可或缺的一部分。

在无线通信系统中,信号调制与解调技巧起到至关重要的作用。

而MATLAB作为一种强大的工具,能够帮助工程师们在信号调制与解调方面进行深入研究和实践。

一、信号调制的基本原理与方法信号调制是将原始信号(baseband signal)通过改变某些参数来转换为调制信号(modulated signal)。

常见的信号调制方法包括幅度调制(AM)、频率调制(FM)和相位调制(PM)。

1.1 幅度调制幅度调制是一种通过改变信号的振幅来调制信号的方法。

MATLAB提供了丰富的函数和工具箱,可以方便地进行幅度调制的模拟和分析。

例如,我们可以使用MATLAB中的ammod函数来模拟幅度调制过程。

首先,我们需要准备一个原始信号,可以是一个正弦波或任何其他波形。

然后,通过设置调制指数(modulation index)来改变振幅。

最后,使用ammod函数对原始信号进行调制,生成调制后的信号。

1.2 频率调制频率调制是一种通过改变信号的频率来实现调制的方法。

以调幅电台为例,电台信号的频率会随着音频信号的变化而改变。

在MATLAB中,我们可以利用fmmod函数来模拟频率调制过程。

类似于幅度调制,我们需要先准备一个原始信号。

然后,通过设置调制指数和载波频率来改变频率。

最后,使用fmmod函数对原始信号进行调制,生成调制后的信号。

1.3 相位调制相位调制是一种通过改变信号的相位来实现调制的方法。

在数字通信系统中,相位调制常用于传输和提取数字信息。

MATLAB中的pmmod函数可以方便地实现相位调制。

与前两种调制方法类似,我们需要先准备一个原始信号。

然后,设置调制指数和载波频率来改变相位。

最后,使用pmmod函数对原始信号进行调制,生成调制后的信号。

二、信号解调的基本原理与方法信号解调是将调制信号恢复为原始信号的过程。

解调方法通常与调制方法相对应,常见的解调方法包括幅度解调(AM)、频率解调(FM)和相位解调(PM)。

基于MATLAB的FM频率调制

基于MATLAB的FM频率调制

MATLAB实现FM调制摘要:FM属于角度调制,角度调制与线性调制不同,已调信号频谱不再是原调制信号频谱的线性搬移,而是频谱的非线性变换,会产生与频谱搬移不同的新的频率成分,故又称为非线性调制。

FM调制又称为频率调制,与幅度调制相比,角度调制的最突出的优势在于其较高的抗噪声性能,但获得这种优势的代价是角度调制占用比幅度调制信号更宽的带宽。

调制在通信系统中有十分重要的作用,通过调制不仅可以进行频谱搬移,把调制信号的频谱搬移到所希望的位置上,从而将调制信号转换成适合于传播的已调信号,而且它对系统的传输有效性和传输的可靠性有着很大的影响,调制方式往往决定了一个通信系统的性能。

本课程设计主要基于MATLAB集成环境编写程序实现FM 调制与解调过程,并分别绘制出调制信号、已调信号和解调信号的时域及频域波形。

1FM 调制被调信号()0sin 100()0else⎧≤⎪=⎨⎪⎩c t t t m t00.1t =,载波()()cos 2c c t ft π=,其中250c f Hz =,偏移常量100kf =。

1. 绘制()m t 的时域、频域曲线;2. 令()x t 表示调频信号,求()x t 的表达式,绘制()x t 的时域、频域曲线;3. 绘制解调信号的时域、频域曲线。

二、课程设计目的1.熟悉MATLAB 的使用方法,其中包括了解简单函数、了解原理和掌握操作方法;2.加深对FM 信号调制原理的理解;3.增强在通信原理仿真方面的动手能力与自学能力;4.完成FM 调制仿真之后,再遇到类似的问题时,学会对所面对的问题进行系统的分析,并能从多个方面进行比较。

三、实验原理角度调制信号的一般表达式为()cos[()]m c s t A t t ωϕ=+式中:A 为载波的恒定振幅;[()]c t t ωϕ+为信号的瞬时相位,记为()t θ;()t ϕ为相对于载波相位c t ω的瞬时相位偏移;d[()]/dt c t t ωϕ+是信号的瞬时角频率,记为(t)ω;而d ()/dt t ϕ称为相对于载频c ω的瞬时频偏。

基于matlab的fm系统调制与解调的仿真课程设计

基于matlab的fm系统调制与解调的仿真课程设计

基于matlab的fm系统调制与解调的仿真课程设计课程设计题目:基于MATLAB的FM系统调制与解调的仿真一、设计任务与要求1.设计并实现一个简单的FM(调频)调制和解调系统。

2.使用MATLAB进行仿真,分析系统的性能。

3.对比和分析FM调制和解调前后的信号特性。

二、系统总体方案1.系统组成:本设计包括调制器和解调器两部分。

调制器将低频信号调制到高频载波上,解调器则将已调制的信号还原为原始的低频信号。

2.调制方式:采用线性FM调制方式,即将低频信号直接控制高频载波的频率变化。

3.解调方式:采用相干解调,通过与本地载波信号相乘后进行低通滤波,以恢复原始信号。

三、调制器设计1.实现方式:使用MATLAB中的modulate函数进行FM调制。

2.参数设置:选择合适的载波频率、调制信号频率以及调制指数。

3.仿真分析:观察调制后的频谱变化,并分析其特性。

四、解调器设计1.实现方式:使用MATLAB中的demodulate函数进行FM解调。

2.参数设置:选择与调制器相同的载波频率、低通滤波器参数等。

3.仿真分析:观察解调后的频谱变化,并与原始信号进行对比。

五、系统性能分析1.信噪比(SNR)分析:通过改变输入信号的信噪比,观察解调后的输出性能,绘制信噪比与误码率(BER)的关系曲线。

2.调制指数对性能的影响:通过改变调制指数,观察输出信号的性能变化,并分析其影响。

3.动态范围分析:分析系统在不同输入信号幅度下的输出性能,绘制动态范围曲线。

六、实验数据与结果分析1.实验数据收集:根据设计的系统方案进行仿真实验,记录实验数据。

2.结果分析:根据实验数据,分析系统的性能指标,并与理论值进行对比。

总结实验结果,提出改进意见和建议。

七、结论与展望1.结论:通过仿真实验,验证了基于MATLAB的FM系统调制与解调的可行性。

实验结果表明,设计的系统具有良好的性能,能够实现低频信号的FM调制和解调。

通过对比和分析,得出了一些有益的结论,为进一步研究提供了基础。

利用matlab移频信号调制代码的方法

利用matlab移频信号调制代码的方法

利用matlab移频信号调制代码的方法摘要:一、引言二、Matlab移频信号调制的基本原理1.移频信号的定义2.移频信号调制的目的3.Matlab实现移频信号调制的方法三、Matlab移频信号调制的代码实现1.信号发生器2.调制器3.解调器4.性能分析四、实例分析1.实例一:频率偏移调制2.实例二:相位调制3.实例三:频移键控(FSK)五、总结与展望正文:一、引言移频信号调制是一种在无线通信中广泛应用的调制技术。

它通过改变信号的频率来传输信息,具有抗干扰性强、传输速率高等优点。

Matlab作为一种数学计算软件,可以方便地模拟移频信号调制的整个过程。

本文将详细介绍如何利用Matlab实现移频信号调制,并给出实例分析。

二、Matlab移频信号调制的基本原理1.移频信号的定义移频信号是指信号的频率随着时间变化而变化的信号。

它的基本表达式为:f(t) = f0 + f1 * cos(ωt + θ)其中,f0为载波频率,f1为频率偏移量,ω为角频率,θ为相位差。

2.移频信号调制的目的移频信号调制的目的是在保持载波功率不变的情况下,通过改变载波频率来传输信息。

这样可以提高信号的抗干扰能力,提高通信质量。

3.Matlab实现移频信号调制的方法在Matlab中,可以利用信号生成函数、调制函数和性能分析函数实现移频信号调制。

三、Matlab移频信号调制的代码实现1.信号发生器使用Matlab的`awgn`函数生成高斯白噪声,`randn`函数生成随机数。

2.调制器利用Matlab的`cos`、`sin`函数实现移频信号的调制。

例如,对于频率偏移调制,可以编写如下代码:```Matlab% 参数设置Fs = 1000; % 采样频率Ts = 1/Fs; % 采样间隔= 1000; % 数据长度% 信号生成t = (0:N-1)"/Ts;f1 = 10; % 频率偏移量f0 = 100; % 载波频率θ= 0; % 相位差% 调制modulated_signal = sin(2 * pi * (f0 + f1 * cos(t)) * t);```3.解调器利用Matlab的信号处理函数解调信号,例如`fft`、`ifft`等。

如何在Matlab中进行数字信号调制与解调

如何在Matlab中进行数字信号调制与解调

如何在Matlab中进行数字信号调制与解调一、引言数字信号调制与解调是数字通信中非常重要的环节之一。

Matlab作为一个强大的数学计算软件包,提供了丰富的工具和函数来进行数字信号调制和解调的研究和实现。

本文将介绍在Matlab中进行数字信号调制与解调的方法和步骤,帮助读者更好地理解和应用该技术。

二、数字信号调制与解调基础在进行数字信号调制与解调之前,我们需要了解一些基本概念和原理。

数字信号调制是将数字信号转换为模拟信号,常见的调制方式包括脉冲振幅调制(PAM)、正交振幅调制(QAM)、频移键控调制(FSK)等。

数字信号解调则是将模拟信号转换为数字信号,恢复出原始数字信号。

在数字信号调制与解调过程中,需要使用到一些调制器和解调器,如时钟信号生成器、混频器、滤波器等。

三、Matlab中的数字信号调制1. 生成信号波形在Matlab中,可以通过生成特定的函数来模拟信号波形。

例如,我们可以使用正弦函数生成一个基带信号:```t = 0:0.001:1; % 时间范围为0到1秒,步长为0.001秒f = 10; % 信号的频率为10Hzx = sin(2*pi*f*t); % 生成正弦波```上述代码中,t代表时间轴,f代表信号频率,x为生成的波形信号。

2. 进行数字信号调制在Matlab中,可以使用调制函数对生成的信号进行调制。

例如,可以使用脉冲振幅调制(PAM)对波形信号进行调制:```fs = 1000; % 采样频率为1000Hzns = 4; % 每个符号的样本数为4y = pammod(x,ns); % 使用PAM调制函数```上述代码中,fs代表采样频率,ns代表每个符号的样本数,y为PAM调制后的信号。

3. 信号的调制效果分析在Matlab中,可以使用绘图函数对调制后的信号进行分析和展示。

例如,可以绘制调制前后的信号波形:```subplot(2,1,1);plot(t,x);title('调制前波形');subplot(2,1,2);plot(t,y);title('调制后波形');```通过绘图,可以直观地观察到信号在调制前后的变化情况。

基于matlab的DSB—FM调制

基于matlab的DSB—FM调制

一、 设计内容信号)(t m 在区间[0,2]内给出为⎪⎩⎪⎨⎧<≤+-<≤=t t t t tt m 其余1.09.11211.0)(用该信号以DSB-AM 方式调制一载波频率为25HZ 幅度为1的载波产生已调信号)(t s m 。

写一个MATLAB 的M 文件,实现下述任务: (1)画出已调信号波形 (2)求出已调信号的功率 (3)画出已调信号的频谱(4)画出已调信号的功率谱密度,并与消息信号的功率谱密度作比较 二、 设计目的通过对模拟通信系统的仿真,学习通信系统的仿真方法,进一步理解模拟通信系统的调制解调方法,掌握各种模拟调制解调系统的性能,包括已调信号的时域表示、频域表示、已调信号的带宽、已调信号的功率含量,解调信号的信噪比等。

学会用傅立叶变换方法分析信号的频域成分及相关的数字信号处理方法。

三、 设计要求1)独立完成课题设计题目;2)对所设计的课题原理要有较深入的了解,画出原理框图; 3)提出设计方案;4)通过编写程序完成设计方案;5)中间各个过程的仿真过程给出仿真结果;6)提交详细的课程设计报告;同一题目设计报告雷同率达40%,双方均视为不合格。

四、 实验条件计算机,matlab 软件 五、 系统设计1、 系统原理简介在DBS —AM 系统中,已调信号的幅度正比于消息信号,这种调制通过使用乘法器完成,将消息信号码,m(t)与载波Acos(2πf t ),如图一所示,表示为:u (t )=Am (t )cos (2πft )其中c(t)= Acos(2πft)是载波,而m(t)是消息信号。

若以单频正弦信号调制为例,那么典型波形如图 2 所示。

现取u(t)的傅立叶变换,可以得到DSB-AM 信号的频域表示为:U(f)=A/2M(f−fc)+A/2M(f+fc)其中M(f)是m(t)的傅立叶变换。

很明显可以看出,这种调制方式将消息信号的频谱进 行了搬移,并在幅度上乘以A/2 ,传输带宽B 是消息信号带宽的两倍,也就是说:B=2W图3 显示了一个典型的消息信号的频谱及其相对应的DSB-AM 已调信号的频谱。

基于Matlab的模拟(AM、FM、PM)调制系统仿真

基于Matlab的模拟(AM、FM、PM)调制系统仿真

通信系统模拟调制系统仿真一 课题内容 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 )。

matlab模拟调制解调

matlab模拟调制解调

matlab模拟调制解调
《用MATLAB模拟调制解调技术》。

调制解调技术是通信领域中的重要概念,它在无线通信、有线通信以及光通信等各种通信系统中都有着广泛的应用。

MATLAB作为一款强大的科学计算软件,提供了丰富的工具和函数来进行调制解调技术的模拟和仿真。

本文将介绍如何利用MATLAB进行调制解调技术的模拟,并通过实例演示其应用。

首先,我们将介绍调制技术。

调制是指将数字信号转换为模拟信号或者将模拟信号转换为数字信号的过程。

常见的调制方式包括调幅调制(AM)、调频调制(FM)、调相调制(PM)等。

在MATLAB 中,我们可以利用其内置的信号处理工具箱来实现各种调制技术的模拟。

其次,我们将介绍解调技术。

解调是指将调制后的信号还原为原始信号的过程。

常见的解调方式包括包络检波、同步检波、相干检波等。

利用MATLAB,我们可以通过仿真和实验来验证不同解调技术的性能和特点。

接下来,我们将通过一个实例来演示如何利用MATLAB进行调制
解调技术的模拟。

我们将以调幅调制为例,首先生成一个原始信号,然后对其进行调幅调制,并最终进行解调还原原始信号。

通过MATLAB的仿真和可视化工具,我们可以清晰地观察到调制解调的过
程和效果。

总之,MATLAB为调制解调技术的模拟和仿真提供了便利的工具
和函数,使得我们可以更加直观地理解和掌握这一重要的通信技术。

通过学习和实践,我们可以更好地应用调制解调技术于实际工程中,为通信系统的设计和优化提供有力的支持。

FM模拟调制与解调

FM模拟调制与解调

电子信息与通信学院实验报告实验名称FM信号的调制与解调课程名称通信原理姓名顾康学号U201413323日期2017/3/14 地点成绩教师徐争光1 实验目标本实验完成了对音乐信号的FM 调制与解调。

要达到的效果是让音乐信号经历了调制、信道传送、解调的过程后仍能不失真地播放。

2 调制与解调原理2.1 调制角度调制信号的一般表达式为:()cos[()]m c s t A t t ωϕ=+式中:A 为载波的恒定振幅;[()]c t t ωϕ+为信号的瞬时相位,记为()t θ;()t ϕ为相对于载波相位c t ω的瞬时相位偏移;d[()]/dt c t t ωϕ+是信号的瞬时角频率,记为(t)ω;而d ()/dt t ϕ称为相对于载频c ω的瞬时频偏。

所谓频率调制(FM ),是指瞬时频率偏移随调制信号()m t 成比例变化,即d ()()dtf t K m t ϕ= 式中:f K 为调频灵敏度。

这时相位偏移为:()()ft K m d ϕττ=⎰,代入角度调制信号的一般表达式,可得调频信号为:()cos[()]FM c f s t A t K m d ωττ=+⎰以下为FM 调制的代码:2.2解调由于非相干解调对NBFM 信号及WBFM 信号均适用,所以采用非相干的解调方法。

调频信号的一般表达式为:()cos[()]c f x t A t K m d ωττ=+⎰ 则解调输出应为:()()d f y t K K m t =这就是说,调频信号的解调是要产生一个与输入调频信号的频率呈线性关系的输出电压。

完成这种频率-电压转化关系的器件是频率检波器,简称鉴频器。

下图描述了一种振幅鉴频器进行相干解调的特性与原理框图。

限幅器的作用是消除信道中的噪声和其他原因引起的调频波的幅度起伏,带通滤波器(BPF )是让调频信号顺利通过你,同时滤除带外噪声及高次谐波分量。

微分器和包络检波器构成了具有近似理想鉴频特性的鉴频器。

微分器的作用是把幅度恒定的调频波()x t 变成幅度和频率都随原始信号()m t 变化的调幅调频()d s t ,即()()()sin d c f c f s t A K m t t K m d ωωττ⎡⎤⎡⎤=-++⎣⎦⎣⎦⎰包络检波器则将其幅度变化检出并滤去直流,再经低通滤波后即得解调输出()()d f y t K K m t =式中:d K 为鉴频器灵敏度(V/(rad/s))以下为解调部分代码:3实验难点与解决方案实验中我先尝试最简单的AM方式,但是结果十分不理想,噪声的干扰太大。

实验四--基于matlab的FM调制与解调.wps

实验四--基于matlab的FM调制与解调.wps

FM 解调模型
4.3.2 解调过程分析 输入调频信号为
解调模型
设相干载波为
uFM t Uc cos
0t k f
t 0
u
t
dt
ct cos2 pi fct
乘法器的作用是把调频信号变成有多种频率的波的混合,乘法器输出为
sp
t
1 2
sin
2ct
1 2
K
f
m
t
dt
1
cos
2ct
经低通滤波器后取出器低频分量为
diff_nsfm1(i)=(nsfm1(i+1)-nsfm1(i))./dt;
end
diff_nsfmn=abs(hilbert(diff_nsfm1)); %hilbert 变换,求绝对值得到瞬
时幅度(包络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;
subplot(2,1,2);
plot((1:length(diff_nsfmn3))./1000,diff_nsfmn3./400,'r'); xlabel('时间 t'); title('含高斯噪声条件下解调信号的时域图');
五.实验结果:
调制结果:
高斯白噪声:
解调图形
实验总结:
通过这次的通信原理实验,我对系统的调制与解调有个详细而且深刻的认识,这使得我对通 信原理这门课程有了全新的理解。在实验中遇到了许多问题,通过网上查阅资料,在老师同 学的帮助下,完成了这次的实验。通过个 bask,pcm 等调制方式,我加深了对调制的认识。 并在 fm 解调方式中明白了解调的方式与方法。谢谢老师的悉心指导与同学的帮助。

基于MATLAB的模拟信号频率调制(FM)与解调分析

基于MATLAB的模拟信号频率调制(FM)与解调分析

课程设计任务书学生姓名:杨刚专业班级:电信1302指导教师: 工作单位:武汉理工大学题目信号分析处理课程设计—基于MATLAB的模拟信号频率调制(FM)与解调分析初始条件:1.Matlab6.5以上版本软件;2.先修课程:通信原理等;要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、利用MATLAB中的simulink工具箱中的模块进行模拟频率(FM)调制与解调,观察波形变化2、画出程序设计框图,编写程序代码,上机运行调试程序,记录实验结果(含计算结果和图表等),并对实验结果进行分析和总结;3、课程设计说明书按学校统一规范来撰写,具体包括:⑴目录;⑵理论分析;⑶ 程序设计;⑷ 程序运行结果及图表分析和总结;⑸课程设计的心得体会(至少800字,必须手写。

);⑹参考文献(不少于5篇)。

时间安排:周一、周二查阅资料,了解设计内容;周三、周四程序设计,上机调试程序;周五、整理实验结果,撰写课程设计说明书2013系主任(或责任教师)签名: 2013 年7月2日指导教师签名:目录1 Simulink 简介 (1)1.1 Matlab简介.................................... 错误!未定义书签。

1.2 Simulink介绍 .................................. 错误!未定义书签。

2原理分析........................................... 错误!未定义书签。

2.1通信系统....................................... 错误!未定义书签。

2.1.1通信系统的一般模型........................ 错误!未定义书签。

2.1.2模拟通信系统 (3)2.2 FM调制与解调原理............................. 错误!未定义书签。

基于MATLAB的模拟信号频率调制(FM)与解调分析.

基于MATLAB的模拟信号频率调制(FM)与解调分析.

课程设计任务书学生姓名:专业班级:电信指导教师:工作单位:武汉理工大学题目:信号分析处理课程设计-基于MATLAB的模拟信号频率调制(FM)与解调分析初始条件:1.Matlab6.5以上版本软件;2.先修课程:通信原理等;要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、利用MATLAB中的simulink工具箱中的模块进行模拟频率(FM)调制与解调,观察波形变化2、画出程序设计框图,编写程序代码,上机运行调试程序,记录实验结果(含计算结果和图表等),并对实验结果进行分析和总结;3、课程设计说明书按学校统一规范来撰写,具体包括:⑴目录;⑵理论分析;⑶程序设计;⑷程序运行结果及图表分析和总结;⑸课程设计的心得体会(至少800字,必须手写。

);⑹参考文献(不少于5篇)。

时间安排:周一、周二查阅资料,了解设计内容;周三、周四程序设计,上机调试程序;周五、整理实验结果,撰写课程设计说明书。

指导教师签名: 2013 年 7月 2 日系主任(或责任教师)签名: 2013年 7月 2日目录1 Simulink简介 (1)1.1 Matlab简介······················································错误!未定义书签。

基于matlab的 AM,FM调制与解调报告

基于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 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隔直后的波形。

用MATLAB建模实现信号的调制解调(DOC)

用MATLAB建模实现信号的调制解调(DOC)

用MATLAB 建模实现信号的调制解调1. 实验要求用MATLAB 的调制解调建模实现信号的调制解调过程,需要文字报告、波形图。

(本文选用AM 、FM 调制进行仿真分析)2. 实验原理2.1 AM 调制解调的原理 2.1.1AM 调制信号的产生标准调幅(AM )是指用信号m(t)去控制载波c(t)的振幅,是已调信号的包络按照m(t)的规律线性变化的过程,u(t)=(A0+a*m(t))*c(t)。

调制过程如图2.1所示。

图2.1 AM 调制模型2.1.2 AM 的解调调制的逆过程叫解调,调制是一个频谱搬移过程,它是将低频信号的频谱搬移到载频位置。

解调就是从已调信号的频谱中,将位于载频的信号频谱搬移回来。

调制和解调都完成频谱搬移,各种调幅都是利用乘法器实现的,因此可以设想,在收端也可以利用乘法器进行解调[1]。

已调信号u(t)乘以本地载波c(t),再通过低通滤波器得到解调信号dem(t)=u(t)*c(t)。

如图所示,解调后dem(t)=A0/2+m(t)/2,所以在解调后要重新缩放。

另一种解调方法,包络解调由于包络检波器电路简单,检波效率高,几乎所有调幅(AM )式接收机都采用这种电路,如图2.3所示为包络检波模型。

在MATLAB 中我们使用hilbert()函数找出已调信号包络dem(t) A0+m(t)。

找出包络后也要重新缩放,最终解调出基带信号m(t)。

c(t)A0 m(t)u(t)相干解调模型2.2 FM 调制解调的原理 2.2.1FM 调制信号的产生角度调制是频率调制和相位调制的总称。

角度调制是使正弦载波信号的角度随着基带调制信号的幅度变化而改变。

调频信号可以被看作调制信号在调制前先积分的调相信号。

这意味着先对m(t)积分,再将结果作为调相器的输入即可得到调频信号。

相反,先微分m(t),再将结果作为调频器的输入也可得到调相信号。

在模拟蜂窝移动通信中,调频是更为普遍应用的角度调制,这是因为FM 不管信号的幅度如何,抗干扰能力都很强,而在调幅中,正如前面所说的那样,抗干扰能力要弱得多[10]。

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

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

%FM调制解调系统.m%频率调制与解调的Matlab演示源程序%可以任意改原调制信号函数m(t)%通信工程吴海涛5021210102 %•*•*•*•*•*•*•*•*•*•*•*•*•*•*•*•%*****************初始化******************echo offclose 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)-1int_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=am^2/(2*(10^(sn/10))); %计算对应的高斯白躁声的方差n=sqrt(db)*randn(size(t)); %生成高斯白躁声nsfm=n+sfm; %生成含高斯白躁声的已调信号(信号通%过信道传输)%***************************************** %•*•*•*•*•*•*•*•*•*•*•*•*•*•*•*•%****************FM解调*******************for i=1:length(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*cos(2*pi*fm*t); %原调信号fs=1/ts;if n==2n1=0;elsen1=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==2n1=0;elsen1=fs/df;endn2=length(sfm);n=2^(max(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('载波的时域图');subplot(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('按任意键可以看到原调制信号、无噪声条件下已调信号和解调信号的曲线')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)); %hilbert变换,求绝对值得到瞬时幅度(包络检波)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=am^2/(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)-nsfm1(i))./dt;enddiff_nsfmn1 = abs(hilbert(diff_nsfm1)); %hilbert变换,求绝对值得到瞬时幅度(包络检波)zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;diff_nsfmn1=diff_nsfmn1-zero;subplot(3,1,2);plot(1:length(diff_nsfm),diff_nsfm); %绘制含小信噪比高斯白噪声已调信号的时域图xlabel('时间t');title('含小信噪比高斯白噪声已调信号的时域图');subplot(3,1,3); %绘制含小信噪比高斯白噪声解调信号的时域图plot((1:length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');xlabel('时间t');title('含小信噪比高斯白噪声解调信号的时域图');%*****************************************disp('按任意键可以看到原调制信号、大信噪比高斯白噪声条件下已调信号和解调信号已调信号的曲线')pause%**************figure(5)******************figure(5)subplot(3,1,1);plot(t,mt); %绘制调制信号的时域图xlabel('时间t');title('调制信号的时域图');db1=am^2/(2*(10^(sn2/10))); %计算对应的大信噪比高斯白躁声的方差n1=sqrt(db1)*randn(size(t)); %生成高斯白躁声nsfm1=n1+sfm; %生成含高斯白躁声的已调信号(信号通过信道传输)for i=1:length(t)-1 %接受信号通过微分器处理diff_nsfm1(i)=(nsfm1(i+1)-nsfm1(i))./dt;enddiff_nsfmn1 = abs(hilbert(diff_nsfm1)); %hilbert变换,求绝对值得到瞬时幅度(包%络检波)zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;diff_nsfmn1=diff_nsfmn1-zero;subplot(3,1,2);plot(1:length(diff_nsfm1),diff_nsfm1); %绘制含大信噪比高斯白噪声已调信号%的时域图xlabel('时间t');title('含大信噪比高斯白噪声已调信号的时域图');subplot(3,1,3); %绘制含大信噪比高斯白噪声解调信号%的时域图plot((1:length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');xlabel('时间t');title('含大信噪比高斯白噪声解调信号的时域图');%*****************************************%******************结束*******************附录资料:MATLAB 的30个方法1 内部常数2 数学运算符3 关系运算符4 常用内部数学函数asech(x) 反双曲正割函数acsch(x) 反双曲余割函数求角度函数atan2(y,x) 以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的射线为终边的角,其单位为弧度,范围为(,]数论函数gcd(a,b) 两个整数的最大公约数lcm(a,b) 两个整数的最小公倍数排列组合函数factorial(n)阶乘函数,表示n的阶乘复数函数real(z) 实部函数imag(z) 虚部函数abs(z) 求复数z的模angle(z)求复数z的辐角,其范围是(,]conj(z) 求复数z的共轭复数求整函数与截尾函数ceil(x)表示大于或等于实数x的最小整数floor(x)表示小于或等于实数x的最大整数round(x) 最接近x的整数最大、最小函数max([a,b,c,...])求最大数min([a,b,c,..])求最小数符号函数sign(x)5 自定义函数-调用时:“[返回值列]=M文件名(参数列)”function 返回变量=函数名(输入变量)注释说明语句段(此部分可有可无)函数体语句6.进行函数的复合运算compose(f,g)返回值为f(g(y))compose(f,g,z) 返回值为f(g(z))compose(f,g,x,.z) 返回值为f(g(z))7 因式分解8 代数式展开9 合并同类项10 进行数学式化简11 进行变量替换12 进行数学式的转换调用Maple中数学式的转换命令,调用格式如下:maple(‘Maple的数学式转换命令’) 即:13 解方程solve(’方程’,’变元’)注:方程的等号用普通的等号: =14 解不等式调用maple中解不等式的命令即可,调用形式如下:具体说,包括以下五种:15 解不等式组调用maple中解不等式组的命令即可,调用形式如下:16 画图17 求极限(1)极限:(2)单侧极限:左极限:右极限:18 求导数或者:19 求高阶导数或者:diff(f(x), x,n)20 在MATLAB中没有直接求隐函数导数的命令,但是我们可以根据数学中求隐函数导数的方法,在中一步一步地进行推导;也可以自己编一个求隐函数导数的小程序;不过,最简便的方法是调用Maple中求隐函数导数的命令,调用格式如下:maple('implicitdiff(f(x,y)=0,y,x)')在MATLAB中,没有直接求参数方程确定的函数的导数的命令,只能根据参数方程确定的函数的求导公式一步一步地进行推导;或者,干脆自己编一个小程序,应用起来会更加方便。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档