调制解调matlab程序

合集下载

BPSK和QPSK调制解调原理及MATLAB程序

BPSK和QPSK调制解调原理及MATLAB程序

2.1 PSK调制方式PSK原理介绍(以2-PSK为例)移相键控(PSK)又称为数字相位调制,二进制移相键控记作2PSK。

绝对相移是利用载波的相位(指初相)直接表示数字信号的相移方式。

二进制相移键控中,通常用相位0 和π来分别表示“0”或“1”。

2PSK 已调信号的时域表达式为s2psk(t)=s(t)cosωct, 2PSK移相键控中的基带信号与频移键控和幅度键控是有区别的,频移键控和幅度键控为单极性非归零矩形脉冲序列,移相键控为为双极性数字基带信号,就模拟调制法而言,与产生2ASK 信号的方法比较,只是对s(t)要求不同,因此2PSK 信号可以看作是双极性基带信号作用下的DSB 调幅信号。

在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控(2PSK)信号。

通常用已调信号载波的 0°和 180°分别表示二进制数字基带信号的 1 和 0。

二进制移相键控信号的时域表达式为e2PSK(t)=[nna g(t-nT s)]cosw c t其中, an与2ASK和2FSK时的不同,在2PSK调制中,an应选择双极性。

1, 发送概率为Pan=-1, 发送概率为1-P若g(t)是脉宽为Ts, 高度为1的矩形脉冲时,则有cosωct, 发送概率为Pe2PSK(t)=-cosωct, 发送概率为1-P由上式(6.2-28)可看出,当发送二进制符号1时,已调信号e2PSK(t)取0°相位,发送二进制符号0时,e2PSK(t)取180°相位。

若用φn表示第n个符号的绝对相位,则有0°, 发送 1 符号φn=180°, 发送 0 符号由于在2PSK信号的载波恢复过程中存在着180°的相位模糊,所以2PSK信号的相干解调存在随机的“倒π”现象,从而使得2PSK 方式在实际中很少采用。

为了解决2PSK 信号解调过程的反向工作问题, 提出了二进制差分相位键控(2DPSK),这里不再详述。

大毕设-matlab-AM调制解调

大毕设-matlab-AM调制解调

⼤毕设-matlab-AM调制解调博主⼤毕设关于数字下变频(DDC)的CUDA实现,预计⼯期⽐较长,所以留下⼀些⽂字记录。

 主要分为两部分⼯作,Matlab仿真部分和CUDA实现。

 由于很久没有仿真了,所以先⽤⼀个简单的AM调制仿真练⼿。

具体代码如下:代码都是基础的所以就不解释了(环境matlab2016)1 clc;2 fm=100; %信号频率3 fc=500; %载波频率4 fs=5000; %抽样频率5 Am=1;6 A=2;7 N=512;8 K=N-1;9 n=0:N-1;10 t=(0:1/fs:K/fs);11 yt=Am*cos(2*pi*fm*t);12 figure(1)13 subplot(1,1,1);plot(t,yt);title('频率为100HZ信号时域波形');1415 y0=A+yt;16 y2=y0.*cos(2*pi*fc*n/fs);17 y3=fft(y2,N);18 q1=(0:N/2-1)*fs/N;19 mx1=abs(y3(1:N/2));20 figure(2)21 subplot(2,1,1);22 plot(t,y2);23 title('已调信号时域波形');24 subplot(2,1,2);25 plot(q1,mx1);26 title('已调信号频谱');27 yc=cos(2*pi*fc*t);28 figure(3);29 subplot(2,1,1),plot(t,yc),title('载波fc时域')30 n=0:N-1;31 yc1 = Am*cos(2*pi*fc*n/fs);32 y3=fft(yc1,N)33 q=(0:N/2-1)*fs/N34 mx=abs(y3(1:N/2));35 figure(3)36 subplot(2,1,2),plot(q,mx),title('载波fc频谱')37 N=512;38 n=0:N-1;39 y4=0.01*randn(1,length(t)); %产⽣⾼斯噪声40 w=y4.^2; %噪声功率41 figure(4);42 subplot(2,1,1);43 plot(t,y4);44 title('⾼斯⽩噪声时域波形');45 y5=fft(y4,N);46 q2=(0:N/2-1)*fs/N;47 mx2=abs(y5(1:N/2));48 figure(4);49 subplot(2,1,2);50 plot(q2,mx2);51 title('⾼斯⽩噪声频域波形');52 y6=y2+y4;53 figure(5);54 subplot(2,1,1);55 plot(t,y6);56 title('加噪声后时域信号')57 q3=q1;58 mx3=mx1+mx2;59 subplot(2,1,2);60 plot(q3,mx3);61 title('加噪声后频谱')626364 yv=y6.*yc; %乘以载波想⼲解调65 Ws=yv.^2;66 p1=fc-fm;67 [k,Wn,beta,ftype]=kaiserord([p1 fc],[10],[0.050.01],fs);%数字低通过滤波器68 window=kaiser(k+1,beta);%使⽤kaiser窗函数69 b=fir1(k,Wn,ftype,window,'noscale');%70 yt=filter(b,1,yv);71 yssdb=yt.*2-2;72 figure(6)73 subplot(2,1,1);74 plot(t,yssdb);75 title('经过低通已调信号时域波形') ;%解调7677 y9=fft(yssdb,N);78 mx=abs(y9(1:N/2));79 subplot(2,1,2);80 plot(q,mx);81 title('已调信号频域波形')实现效果如下:。

FSK调制解调MATLAB源代码

FSK调制解调MATLAB源代码

FSK调制解调MATLAB源代码关键词:FSK 高斯白噪声调制眼图信噪比function FSKFc=10; %载频Fs=40; %系统采样频率Fd=1; %码速率N=Fs/Fd;df=10;numSymb=25;%进行仿真的信息代码个数M=2; %进制数SNRpBit=60;%信噪比SNR=SNRpBit/log2(M);seed=[12345 54321];numPlot=25;%产生25个二进制随机码x=randsrc(numSymb,1,[0:M-1]);%产生25个二进制随机码figure(1)stem([0:numPlot-1],x(1:numPlot),'bx');title('二进制随机序列')xlabel('Time');ylabel('Amplitude');%调制y=dmod(x,Fc,Fd,Fs,'fsk',M,df);numModPlot=numPlot*Fs;t=[0:numModPlot-1]./Fs;figure(2)plot(t,y(1:length(t)),'b-');axis([min(t) max(t) -1.5 1.5]);title('调制后的信号')xlabel('Time');ylabel('Amplitude');%在已调信号中加入高斯白噪声randn('state',seed(2));y=awgn(y,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');%在已调信号中加入高斯白噪声figure(3)plot(t,y(1:length(t)),'b-');%画出经过信道的实际信号axis([min(t) max(t) -1.5 1.5]);title('加入高斯白噪声后的已调信号')xlabel('Time');ylabel('Amplitude');%相干解调figure(4)z1=ddemod(y,Fc,Fd,Fs,'fsk/eye',M,df);title('相干解调后的信号的眼图')%带输出波形的相干M元频移键控解调figure(5)stem([0:numPlot-1],x(1:numPlot),'bx');hold on;stem([0:numPlot-1],z1(1:numPlot),'ro');hold off;axis([0 numPlot -0.5 1.5]);title('相干解调后的信号原序列比较')legend('原输入二进制随机序列','相干解调后的信号') xlabel('Time');ylabel('Amplitude');%非相干解调figure(6)z2=ddemod(y,Fc,Fd,Fs,'fsk/eye/noncoh',M,df);title('非相干解调后的信号的眼图')%带输出波形的非相干M元频移键控解调figure(7)stem([0:numPlot-1],x(1:numPlot),'bx');hold on;stem([0:numPlot-1],z2(1:numPlot),'ro');hold off;axis([0 numPlot -0.5 1.5]);title('非相干解调后的信号')legend('原输入二进制随机序列','非相干解调后的信号') xlabel('Time');ylabel('Amplitude');%误码率统计[errorSym ratioSym]=symerr(x,z1);figure(8)simbasebandex([0:1:5]);title('相干解调后误码率统计')[errorSym ratioSym]=symerr(x,z2);figure(9)simbasebandex([0:1:5]);title('非相干解调后误码率统计')%滤除高斯白噪声Delay=3;R=0.5ropD=0; %滞后3s[yf,tf]=rcosine(Fd,Fs,'fir',R,Delay); %升余弦函数[yo2,to2]=rcosflt(y,Fd,Fs,'filter',yf);%加入高斯白噪声后的已调信号和经过升余弦滤波器后的已调信号t=[0:numModPlot-1]./Fs;figure(10)plot(t,y(1:length(t)),'r-');hold on;plot(to2,yo2,'b-');hold off;axis([0 30 -1.5 1.5]);xlabel('Time');ylabel('Amplitude');legend('加入高斯白噪声后的已调信号','经过升余弦滤波器后的已调信号') title('升余弦滤波前后波形比较')eyediagram(yo2,N);%眼图title('加入高斯白噪声后的已调信号的眼图')ASK数字通信系统matlab仿真及误码率分析别人叫我帮忙的但是我不是通信专业大家帮帮忙1、假设某数字通信系统收发信息速率为1kbps,发送端对数字信息进行ASK调制后,使用模拟线路进行传输,其中,载波频率为4kHz,数字“1”对应有载波,数字“0”对应无载波,接收端接收到信号后使用载波信号为模板进行相关解调。

MATLAB环境下16QAM调制及解调仿真程序说明

MATLAB环境下16QAM调制及解调仿真程序说明

创作编号:BG7531400019813488897SX创作者:别如克*姓名:NikeyMATLAB环境下16QAM调制及解调仿真程序说明一、正交调制及相干解调原理框图正交调制原理框图相干解调原理框图二、MQAM调制介绍及本仿真程序的几点说明MQAM可以用正交调制的方法产生,本仿真中取M=16,即幅度和相位相结合的16个信号点的调制。

为了观察信道噪声对该调制方式的影响,我们在已调信号中又加入了不同强度的高斯白噪声,并统计其译码误码率。

为了简化程序和得到可靠的误码率,我们在解调时并未从已调信号中恢复载波,而是直接产生与调制时一模一样的载波来进行信号解调。

三、仿真结果图附源程序代码:main_plot.mclear;clc;echo off;close all;N=10000; %设定码元数量fb=1; %基带信号频率fs=32; %抽样频率fc=4; %载波频率,为便于观察已调信号,我们把载波频率设的较低Kbase=2; % Kbase=1,不经基带成形滤波,直接调制;% Kbase=2,基带经成形滤波器滤波后,再进行调制info=random_binary(N); %产生二进制信号序列[y,I,Q]=qam(info,Kbase,fs,fb,fc); %对基带信号进行16QAM调制y1=y; y2=y; %备份信号,供后续仿真用T=length(info)/fb; m=fs/fb; nn=length(info);dt=1/fs; t=0:dt:T-dt;subplot(211);%便于观察,这里显示的已调信号及其频谱均为无噪声干扰的理想情况%由于测试信号码元数量为10000个,在这里我们只显示其总数的1/10plot(t(1:1000),y(1:1000),t(1:1000),I(1:1000),t(1:1000),Q(1:1000),[0 35],[0 0],'b:');title('已调信号(In:red,Qn:green)');%傅里叶变换,求出已调信号的频谱n=length(y); y=fft(y)/n; y=abs(y(1:fix(n/2)))*2;q=find(y<1e-04); y(q)=1e-04; y=20*log10(y);f1=m/n; f=0:f1:(length(y)-1)*f1;subplot(223);plot(f,y,'r');grid on;title('已调信号频谱'); xlabel('f/fb');%画出16QAM调制方式对应的星座图subplot(224);constel(y1,fs,fb,fc); title('星座图');SNR_in_dB=8:2:24; %AWGN信道信噪比for j=1:length(SNR_in_dB)y_add_noise=awgn(y2,SNR_in_dB(j)); %加入不同强度的高斯白噪声y_output=qamdet(y_add_noise,fs,fb,fc); %对已调信号进行解调numoferr=0;for i=1:Nif (y_output(i)~=info(i)),创作编号:BG7531400019813488897SX创作者:别如克*numoferr=numoferr+1;end;end;Pe(j)=numoferr/N; %统计误码率end;figure;semilogy(SNR_in_dB,Pe,'red*-');grid on;xlabel('SNR in dB');ylabel('Pe');title('16QAM调制在不同信道噪声强度下的误码率');random_binary.m%产生二进制信源随机序列function [info]=random_binary(N)if nargin == 0, %如果没有输入参数,则指定信息序列为10000个码元N=10000;end;for i=1:N,temp=rand;if (temp<0.5),info(i)=0; % 1/2的概率输出为0elseinfo(i)=1; % 1/2的概率输出为1endend;qam.mfunction [y,I,Q]=qam(x,Kbase,fs,fb,fc);%T=length(x)/fb; m=fs/fb; nn=length(x);dt=1/fs; t=0:dt:T-dt;%串/并变换分离出I分量、Q分量,然后再分别进行电平映射I=x(1:2:nn-1); [I,In]=two2four(I,4*m);Q=x(2:2:nn); [Q,Qn]=two2four(Q,4*m);if Kbase==2; %基带成形滤波I=bshape(I,fs,fb/4); Q=bshape(Q,fs,fb/4);end;y=I.*cos(2*pi*fc*t)-Q.*sin(2*pi*fc*t); %调制qamdet.m%QAM信号解调function [xn,x]=qamdet(y,fs,fb,fc);dt=1/fs; t=0:dt:(length(y)-1)*dt;I=y.*cos(2*pi*fc*t);Q=-y.*sin(2*pi*fc*t);[b,a]=butter(2,2*fb/fs); %设计巴特沃斯滤波器I=filtfilt(b,a,I);Q=filtfilt(b,a,Q);m=4*fs/fb; N=length(y)/m; n=(.6:1:N)*m; n=fix(n);In=I(n); Qn=Q(n); xn=four2two([In Qn]);%I分量Q分量并/串转换,最终恢复成码元序列xnnn=length(xn); xn=[xn(1:nn/2);xn(nn/2+1:nn)];xn=xn(:); xn=xn';bshape.m%基带升余弦成形滤波器function y=bshape(x,fs,fb,N,alfa,delay);%设置默认参数if nargin<6; delay=8; end;if nargin<5; alfa=0.5; end;if nargin<4; N=16; end;b=firrcos(N,fb,2*alfa*fb,fs);y=filter(b,1,x);two2four.m创作编号:BG7531400019813488897SX创作者:别如克*%二进制转换成四进制function [y,yn]=two2four(x,m);T=[0 1;3 2]; n=length(x); ii=1;for i=1:2:n-1;xi=x(i:i+1)+1;yn(ii)=T(xi(1),xi(2));ii=ii+1;end;yn=yn-1.5; y=yn;for i=1:m-1;y=[y;yn];end;y=y(:)'; %映射电平分别为-1.5;0.5;0.5;1.5four2two.m%四进制转换成二进制function xn=four2two(yn);y=yn; ymin=min(y); ymax=max(y); ymax=max([ymax abs(ymin)]);ymin=-abs(ymax); yn=(y-ymin)*3/(ymax-ymin);%设置门限电平,判决I0=find(yn< 0.5); yn(I0)=zeros(size(I0));I1=find(yn>=0.5 & yn<1.5); y n(I1)=ones(size(I1));I2=find(yn>=1.5 & yn<2.5); y n(I2)=ones(size(I2))*2;I3=find(yn>=2.5); yn(I3)=ones(size(I3))*3;%一位四进制码元转换为两位二进制码元T=[0 0;0 1;1 1;1 0]; n=length(yn);for i=1:n;xn(i,:)=T(yn(i)+1,:);end;xn=xn'; xn=xn(:); xn=xn';constel.m%画出星座图function c=constel(x,fs,fb,fc);N=length(x); m=2*fs/fb; n=fs/fc;i1=m-n; i=1; ph0=(i1-1)*2*pi/n;while i <= N/m;xi=x(i1:i1+n-1);y=2*fft(xi)/n; c(i)=y(2);i=i+1; i1=i1+m;end;%如果无输出,则作图if nargout<1;cmax=max(abs(c));ph=(0:5:360)*pi/180;plot(1.414*cos(ph),1.414*sin(ph),'c');hold on;for i=1:length(c);ph=ph0-angle(c(i));a=abs(c(i))/cmax*1.414;plot(a*cos(ph),a*sin(ph),'r*');end;plot([-1.5 1.5],[0 0],'k:',[0 0],[-1.5 1.5],'k:');hold off; axis equal; axis([-1.5 1.5 -1.5 1.5]);end;创作编号:BG7531400019813488897SX创作者:别如克*。

MATLAB环境下16QAM调制及解调仿真程序说明

MATLAB环境下16QAM调制及解调仿真程序说明

姓名:NikeyMATLAB环境下16QAM调制及解调仿真程序说明一、正交调制及相干解调原理框图正交调制原理框图相干解调原理框图二、MQAM调制介绍及本仿真程序的几点说明MQAM可以用正交调制的方法产生,本仿真中取M=16,即幅度和相位相结合的16个信号点的调制。

为了观察信道噪声对该调制方式的影响,我们在已调信号中又加入了不同强度的高斯白噪声,并统计其译码误码率。

为了简化程序和得到可靠的误码率,我们在解调时并未从已调信号中恢复载波,而是直接产生与调制时一模一样的载波来进行信号解调。

三、仿真结果图附源程序代码:clear;clc;echo off;close all;N=10000; %设定码元数量fb=1; %基带信号频率fs=32; %抽样频率fc=4; %载波频率,为便于观察已调信号,我们把载波频率设的较低Kbase=2; % Kbase=1,不经基带成形滤波,直接调制;% Kbase=2,基带经成形滤波器滤波后,再进行调制info=random_binary(N); %产生二进制信号序列[y,I,Q]=qam(info,Kbase,fs,fb,fc); %对基带信号进行16QAM调制y1=y; y2=y; %备份信号,供后续仿真用T=length(info)/fb; m=fs/fb; nn=length(info);dt=1/fs; t=0:dt:T-dt;subplot(211);%便于观察,这里显示的已调信号及其频谱均为无噪声干扰的理想情况%由于测试信号码元数量为10000个,在这里我们只显示其总数的1/10plot(t(1:1000),y(1:1000),t(1:1000),I(1:1000),t(1:1000),Q(1:1000),[0 35],[0 0],'b:'); title('已调信号(In:red,Qn:green)');%傅里叶变换,求出已调信号的频谱n=length(y); y=fft(y)/n; y=abs(y(1:fix(n/2)))*2;q=find(y<1e-04); y(q)=1e-04; y=20*log10(y);f1=m/n; f=0:f1:(length(y)-1)*f1;subplot(223);plot(f,y,'r');grid on;title('已调信号频谱'); xlabel('f/fb');%画出16QAM调制方式对应的星座图subplot(224);constel(y1,fs,fb,fc); title('星座图');SNR_in_dB=8:2:24; %AWGN信道信噪比for j=1:length(SNR_in_dB)y_add_noise=awgn(y2,SNR_in_dB(j)); %加入不同强度的高斯白噪声y_output=qamdet(y_add_noise,fs,fb,fc); %对已调信号进行解调numoferr=0;for i=1:Nif (y_output(i)~=info(i)),numoferr=numoferr+1;end;end;Pe(j)=numoferr/N; %统计误码率end;figure;semilogy(SNR_in_dB,Pe,'red*-');grid on;xlabel('SNR in dB');ylabel('Pe');title('16QAM调制在不同信道噪声强度下的误码率');%产生二进制信源随机序列function [info]=random_binary(N)if nargin == 0, %如果没有输入参数,则指定信息序列为10000个码元 N=10000;end;for i=1:N,temp=rand;if (temp<,info(i)=0; % 1/2的概率输出为0elseinfo(i)=1; % 1/2的概率输出为1endend;function [y,I,Q]=qam(x,Kbase,fs,fb,fc);%T=length(x)/fb; m=fs/fb; nn=length(x);dt=1/fs; t=0:dt:T-dt;%串/并变换分离出I分量、Q分量,然后再分别进行电平映射I=x(1:2:nn-1); [I,In]=two2four(I,4*m);Q=x(2:2:nn); [Q,Qn]=two2four(Q,4*m);if Kbase==2; %基带成形滤波I=bshape(I,fs,fb/4); Q=bshape(Q,fs,fb/4);end;y=I.*cos(2*pi*fc*t)-Q.*sin(2*pi*fc*t); %调制%QAM信号解调function [xn,x]=qamdet(y,fs,fb,fc);dt=1/fs; t=0:dt:(length(y)-1)*dt;I=y.*cos(2*pi*fc*t);Q=-y.*sin(2*pi*fc*t);[b,a]=butter(2,2*fb/fs); %设计巴特沃斯滤波器I=filtfilt(b,a,I);Q=filtfilt(b,a,Q);m=4*fs/fb; N=length(y)/m; n=(.6:1:N)*m; n=fix(n);In=I(n); Qn=Q(n); xn=four2two([In Qn]);%I分量Q分量并/串转换,最终恢复成码元序列xnnn=length(xn); xn=[xn(1:nn/2);xn(nn/2+1:nn)];xn=xn(:); xn=xn';%基带升余弦成形滤波器function y=bshape(x,fs,fb,N,alfa,delay);%设置默认参数if nargin<6; delay=8; end;if nargin<5; alfa=; end;if nargin<4; N=16; end;b=firrcos(N,fb,2*alfa*fb,fs);y=filter(b,1,x);%二进制转换成四进制function [y,yn]=two2four(x,m);T=[0 1;3 2]; n=length(x); ii=1;for i=1:2:n-1;xi=x(i:i+1)+1;yn(ii)=T(xi(1),xi(2));ii=ii+1;end;yn=; y=yn;for i=1:m-1;y=[y;yn];end;y=y(:)'; %映射电平分别为;;;%四进制转换成二进制function xn=four2two(yn);y=yn; ymin=min(y); ymax=max(y); ymax=max([ymax abs(ymin)]); ymin=-abs(ymax); yn=(y-ymin)*3/(ymax-ymin);%设置门限电平,判决I0=find(yn< ; yn(I0)=zeros(size(I0)); I1=find(yn>= & yn<; yn(I1)=ones(size(I1)); I2=find(yn>= & yn<; yn(I2)=ones(size(I2))*2; I3=find(yn>=; yn(I3)=ones(size(I3))*3; %一位四进制码元转换为两位二进制码元T=[0 0;0 1;1 1;1 0]; n=length(yn);for i=1:n;xn(i,:)=T(yn(i)+1,:);end;xn=xn'; xn=xn(:); xn=xn';%画出星座图function c=constel(x,fs,fb,fc);N=length(x); m=2*fs/fb; n=fs/fc;i1=m-n; i=1; ph0=(i1-1)*2*pi/n;while i <= N/m;xi=x(i1:i1+n-1);y=2*fft(xi)/n; c(i)=y(2);i=i+1; i1=i1+m;end;%如果无输出,则作图if nargout<1;cmax=max(abs(c));ph=(0:5:360)*pi/180;plot*cos(ph),*sin(ph),'c');hold on;for i=1:length(c);ph=ph0-angle(c(i));a=abs(c(i))/cmax*;plot(a*cos(ph),a*sin(ph),'r*');end;plot([ ],[0 0],'k:',[0 0],[ ],'k:');hold off; axis equal; axis([ ]);end;。

MATLAB实验三 信号的调制与解调

MATLAB实验三 信号的调制与解调

实验三信号的调制与解调一.实验目的:1.熟悉幅度调制与解调过程,熟悉调制解调过程中信号时域波形和频谱。

2.掌握Modulate函数实现调幅和调频信号。

3.熟悉快速傅立叶变换函数fft,求模函数abs和fftshift函数求信号幅度频谱。

4.掌握butter函数进行巴特沃兹低通滤波器设计,熟悉滤波器频率响应函数freqz,滤波函数filter。

5.熟悉信号的合成与分解原理,加深对傅里叶级数的理解;二、实验原理:1.两个信号的调制通常用乘法器实现,由一个信号控制另一个信号的某个参量,例如用一个低频正弦波信号控制高频载波的幅值,则产生一个振幅调制信号,称为调幅波;类似还可产生调频波等。

2.幅度调制与解调原理:(如下图所示)调制信号()p t,假设信道不引入噪声,解调时采用同步解f t,载波()调,LPF为低通滤波器,()f t为接收信号。

C三、实验内容1.验证性实验a)使用modulate函数产生调幅信号解:Fm=10; Fc=100; Fs=1000; N=1000; k=0:N; t=k/Fs;x=abs(sin(2*pi*Fm*t));xf=abs(fft(x,N)); y1=modulate(x,Fc,Fs,'am');subplot(2,1,1);plot(t(1:200),y1(1:200));xlabel('时间'); ylabel('幅度'); title('调幅');yf=abs(fft(y1,N)); subplot(2,1,2); stem(yf(1:200));xlabel('频率');ylabel('幅度');b)使用modulate函数产生调频信号解:Fm=10; Fc=100; Fs=1000; N=1000; k=0:N; t=k/Fs;x=abs(sin(2*pi*Fm*t));xf=abs(fft(x,N)); y1=modulate(x,Fc,Fs,'pm');subplot(2,1,1);plot(t(1:200),y1(1:200));xlabel('时间'); ylabel('幅度'); title('调频');yf=abs(fft(y1,N)); subplot(2,1,2); stem(yf(1:200)); xlabel('频率');ylabel('幅度');c)周期信号的分解与合成解:t=-3:0.01:3; Fm=0.5; sum=0; n=100; for i=1:2:n;sum=sum+4/pi.*(1/i).*sin(i*2*pi*Fm*t); endplot(t,sum);title('周期信号的分解与合成');2. 设计性实验1) 发射端调制信号()2cos(2)f t t =,载波()cos(20)p t t =,已调信号()A f t ,理想信道无噪声。

matlab模拟调制解调的原理和数字实现方案_概述说明

matlab模拟调制解调的原理和数字实现方案_概述说明

matlab模拟调制解调的原理和数字实现方案概述说明1. 引言1.1 概述本文旨在探讨matlab模拟调制解调的原理和数字实现方案。

随着通信技术的迅猛发展,调制和解调成为了现代通信系统中不可或缺的关键环节。

通过对调制和解调原理的深入研究,我们可以更好地理解数据传输过程中所涉及到的关键概念和技术,并能够以最高效、最准确的方式进行信号传输。

1.2 文章结构本文将分为五个主要部分来讲述matlab模拟调制解调的相关内容。

首先,在第二部分我们将详细介绍matlab模拟调制解调的原理,包括调制原理和解调原理。

接着,在第三部分我们将探讨数字实现方案,包括数字调制方案和数字解调方案。

在第四部分中,我们将通过实例来进一步说明matlab模拟调制和解调的具体应用及实施步骤。

最后,在第五部分我们将对前文进行总结回顾,并讨论结果的影响及应用范围。

1.3 目的本文旨在帮助读者深入了解matlab模拟调制解调的原理,并提供数字实现方案作为参考。

通过详细讲解调制解调的工作原理以及实例的讲解,读者将能够更好地掌握matlab模拟调制解调的技术要点和应用方法。

同时,本文还旨在引发读者对通信领域的关注,并激发他们在该领域进一步研究和创新的兴趣。

2. Matlab模拟调制解调的原理:2.1 调制原理:在通信系统中,调制是指将数字信号转换为模拟信号,以便在传输过程中能够被传输介质正确处理和传递。

调制技术通常用于将数字信号转换为模拟信号的基带信号或射频信号。

Matlab提供了丰富的工具和函数来实现各种调制技术。

常用的调制技术包括幅度移键(ASK)、频率移键(FSK)、相位移键(PSK)和正交幅度调制(QAM)。

这些调制技术可以通过改变合适的参数实现对输入数据的编码,从而产生相应的模拟信号。

对于ASK,通过改变载波的幅度来表示二进制数据;对于FSK,通过不同频率的载波来表示二进制数据;对于PSK,通过改变载波的相位来表示二进制数据;而QAM则同时改变载波的幅度和相位来表示多个二进制数据。

基于matlab的数字信号调制与解调

基于matlab的数字信号调制与解调

一matlab常用函数1、特殊变量与常数ans 计算结果的变量名computer 确定运行的计算机eps 浮点相对精度Inf 无穷大I 虚数单位inputname 输入参数名NaN 非数nargin 输入参数个数nargout 输出参数的数目pi 圆周率nargoutchk 有效的输出参数数目realmax 最大正浮点数realmin 最小正浮点数varargin 实际输入的参量varargout 实际返回的参量操作符与特殊字符+ 加- 减* 矩阵乘法 .* 数组乘(对应元素相乘)^ 矩阵幂 .^ 数组幂(各个元素求幂)\ 左除或反斜杠/ 右除或斜面杠 ./ 数组除(对应元素除)kron Kronecker张量积: 冒号() 圆括[] 方括 . 小数点 .. 父目录 ... 继续, 逗号(分割多条命令); 分号(禁止结果显示)% 注释! 感叹号' 转置或引用= 赋值== 相等<> 不等于& 逻辑与| 逻辑或~ 逻辑非xor 逻辑异或2、基本数学函数abs 绝对值和复数模长acos,acodh 反余弦,反双曲余弦acot,acoth 反余切,反双曲余切acsc,acsch 反余割,反双曲余割angle 相角asec,asech 反正割,反双曲正割secant 正切asin,asinh 反正弦,反双曲正弦atan,atanh 反正切,双曲正切tangent 正切atan2 四象限反正切ceil 向着无穷大舍入complex 建立一个复数conj 复数配对cos,cosh 余弦,双曲余弦csc,csch 余切,双曲余切cot,coth 余切,双曲余切exp 指数fix 朝0方向取整floor 朝负无穷取整*** 最大公因数imag 复数值的虚部lcm 最小公倍数log 自然对数log2 以2为底的对数log10 常用对数mod 有符号的求余nchoosek 二项式系数和全部组合数real 复数的实部rem 相除后求余round 取整为最近的整数sec,sech 正割,双曲正割sign 符号数sin,sinh 正弦,双曲正弦sqrt 平方根tan,tanh 正切,双曲正切3、基本矩阵和矩阵操作blkding 从输入参量建立块对角矩阵eye 单位矩阵linespace 产生线性间隔的向量logspace 产生对数间隔的向量numel 元素个数ones 产生全为1的数组rand 均匀颁随机数和数组randn 正态分布随机数和数组zeros 建立一个全0矩阵colon) 等间隔向量cat 连接数组diag 对角矩阵和矩阵对角线fliplr 从左自右翻转矩阵flipud 从上到下翻转矩阵repmat 复制一个数组reshape 改造矩阵roy90 矩阵翻转90度tril 矩阵的下三角triu 矩阵的上三角dot 向量点集cross 向量叉集ismember 检测一个集合的元素intersect 向量的交集setxor 向量异或集setdiff 向是的差集union 向量的并集数值分析和傅立叶变换cumprod 累积cumsum 累加cumtrapz 累计梯形法计算数值微分factor 质因子inpolygon 删除多边形区域内的点max 最大值mean 数组的均值mediam 中值min 最小值perms 所有可能的转换polyarea 多边形区域primes 生成质数列表prod 数组元素的乘积rectint 矩形交集区域sort 按升序排列矩阵元素sortrows 按升序排列行std 标准偏差sum 求和trapz 梯形数值积分var 方差del2 离散拉普拉斯diff 差值和微分估计gradient 数值梯度cov 协方差矩阵corrcoef 相关系数conv2 二维卷积conv 卷积和多项式乘法filter IIR或FIR滤波器deconv 反卷积和多项式除法filter2 二维数字滤波器cplxpair 将复数值分类为共轭对fft 一维的快速傅立叶变换fft2 二维快速傅立叶变换fftshift 将FFT的DC分量移到频谱中心ifft 一维快速反傅立叶变换ifft2 二维傅立叶反变换ifftn 多维快速傅立叶变换ifftshift 反FFT偏移nextpow2 最靠近的2的幂次unwrap 校正相位角多项式与插值conv 卷积和多项式乘法roots 多项式的根poly 具有设定根的多项式polyder 多项式微分polyeig 多项式的特征根polyfit 多项式拟合polyint 解析多项式积分polyval 多项式求值polyvalm 矩阵变量多项式求值residue 部分分式展开interp1 一维插值interp2 二维插值interp3 三维插值interpft 使用FFT的一维插值interpn 多维插值meshgrid 为3维点生成x和y的网格ndgrid 生成多维函数和插值的数组pchip 分段3次Hermite插值多项式ppval 分段多项式的值spline 3次样条数据插值绘图函数bar 竖直条图barh 水平条图hist 直方图histc 直方图计数hold 保持当前图形loglog x,y对数坐标图pie 饼状图plot 绘二维图polar 极坐标图semilogy y轴对数坐标图semilogx x轴对数坐标subplot 绘制子图bar3 数值3D竖条图bar3h 水平3D条形图comet3 3D 慧星图cylinder 圆柱体fill3 填充的3D多边形plot3 3维空间绘图quiver3 3D震动(速度)图slice 体积薄片图sphere球stem3 绘制离散表面数据wate***ll 绘制瀑布trisurf三角表面clabel 增加轮廓标签到等高线图中datetick 数据格式标记grid 加网格线gtext 用鼠标将文本放在2D图中legend 图注plotyy 左右边都绘Y轴title 标题xlabel X轴标签ylabel Y轴标签zlabel Z轴标签contour 等高线图contourc 等高线计算contourf 填充的等高线图hidden 网格线消影meshc 连接网格/等高线mesh 具有参考轴的3D网格peaks 具有两个变量的采样函数surf 3D阴影表面图su***ce 建立表面低层对象surfc 海浪和等高线的结合surfl 具有光照的3D阴影表面trimesh 三角网格图二Matlab常用指令1、通用信息查询(General information)demo 演示程序help 在线帮助指令helpbrowser 超文本文档帮助信息helpdesk 超文本文档帮助信息helpwin 打开在线帮助窗info MATLAB 和MathWorks 公司的信息subscribe MATLAB 用户注册ver MATLAB 和TOOLBOX 的版本信息version MATLAB 版本whatsnew 显示版本新特征2、工作空间管理(Managing the workspace)clear 从内存中清除变量和函数exit 关闭MATLAB load 从磁盘中调入数据变量pack 合并工作内存中的碎块quit 退出MATLAB save 把内存变量存入磁盘who 列出工作内存中的变量名whos 列出工作内存中的变量细节workspace 工作内存浏览器3 、管理指令和函数(Managing commands and functions)edit 矩阵编辑器edit 打开M 文件inmem 查看内存中的P 码文件mex 创建MEX 文件open 打开文件pcode 生成P 码文件type 显示文件内容what 列出当前目录上的M、MAT、MEX 文件which 确定指定函数和文件的位置4 、搜索路径的管理(Managing the seach patli)addpath 添加搜索路径rmpath 从搜索路径中删除目录path 控制MATLAB 的搜索路径pathtool 修改搜索路径5、指令窗控制(Controlling the command window)beep 产生beep 声echo 显示命令文件指令的切换开关diary 储存MATLAB 指令窗操作内容format 设置数据输出格式more 命令窗口分页输出的控制开关6、操作系统指令(Operating system commands)cd 改变当前工作目录computer 计算机类型copyfile 文件拷贝delete 删除文件dir 列出的文件dos 执行dos 指令并返还结果getenv 给出环境值ispc MATLAB 为PC(Windows)版本则为真isunix MATLAB 为Unix 版本则为真mkdir 创建目录pwd 改变当前工作目录unix 执行unix 指令并返还结果vms 执行vms dcl 指令并返还结果web 打开web 浏览器! 执行外部应用程序三Matlab运算符和特殊算符1、算术运算符(Arithmetic operators)+ 加- 减* 矩阵乘 .* 数组乘^ 矩阵乘方 .^ 数组乘方\ 反斜杠或左除/ 斜杠或右除 ./或.\ 数组除张量积[注]本表第三栏括号中的字符供在线救助时help 指令引述用2、关系运算符(Relational operators)= = 等号~= 不等号< 小于> 大于<= 小于或等于>= 大于或等于3、逻辑操作(Logical operators)& 逻辑与| 逻辑或~ 逻辑非xor 异或any 有非零元则为真all 所有元素均非零则为真4、特殊算符(Special characters):冒号( ) 圆括号[ ] 方括号{ } 花括号@ 创建函数句柄 . 小数点 . 构架域的关节点 .. 父目录? 续行号, 逗号; 分号% 注释号! 调用操作系统命令= 赋值符号ˊ引号ˊ复数转置号 .ˊ转置号[,] 水平串接[;] 垂直串接( ),{ },. 下标赋值( ),{ },. 下标标识subsindex 下标标识四Matlab编程语言结构控制语句(Control flow)break 终止最内循环case 同switch 一起使用catch 同try 一起使用continue 将控制转交给外层的for 或while 循环else 同if 一起使用elseif 同if 一起使用end 结束for,while,if 语句for 按规定次数重复执行语句if 条件执行语句otherwise 可同switch 一起使用return 返回switch 多个条件分支try try-cathch 结构while 不确定次数重复执行语句2、计算运行(Evaluation and execution)assignin 跨空间赋值builtin 执行内建的函数eval 字符串宏指令evalc 执行MATLAB 字符串evalin 跨空间计算串表达式的值feval 函数宏指令run 执行脚本文件3、脚本文件、函数及变量(Scripts,function,and variables)exist 检查变量或函数是否被定义function 函数文件头global 定义全局变量isglobal 若是全局变量则为真iskeyword 若是关键字则为真mfilename 正在执行的M 文件的名字persistent 定义永久变量script MATLAB 命令文件4、宗量处理(Augument handling)inputname 实际调用变量名nargchk 输入变量个数检查nargin 函数输入宗量的个数nargout 函数输出宗量的个数nargoutchk 输出变量个数检查varagin 输入宗量varagout 输出宗量5、信息显示(Message display)disp 显示矩阵和文字内容display 显示矩阵和文字内容的重载函数error 显示错误信息fprintf 把格式化数据写到文件或屏幕lasterr 最后一个错误信息lastwarn 最后一个警告信息sprintf 按格式把数字转换为串warning 显示警告信息6 、交互式输入(Interactive input) input 提示键盘输入keyboard 激活键盘做为命令文件pause 暂停uicontrol 创建用户界面控制uimenu 创建用户界面菜单五Matlab基本矩阵函数和操作1、基本矩阵(Elementary matrices)eye 单位阵linspace 线性等分向量logspace 对数等分向量meshgrid用于三维曲面的分格线坐标ones 全1 矩阵rand 均匀分布随机阵randn 正态分布随机阵repmat 铺放模块数组zeros 全零矩阵: 矩阵的援引和重排2、矩阵基本信息(Basic array information)disp 显示矩阵和文字内容isempty 若是空矩阵则为真isequal 若对应元素相等则为1 islogical 尤其是逻辑数则为真isnumeric 若是数值则为真length 确定向量的长度logical 将数值转化为逻辑值ndims 数组A的维数size 确定矩阵的维数3、矩阵操作(Matrix manipulateion)blkdiag 块对角阵串接diag 创建对角阵,抽取对角向量end 数组的长度,即最大下标find 找出非零元素1 的下标fliplr 矩阵的左右翻转flipud 矩阵的上下翻转flipdim 交换对称位置上的元素ind2sub 据单下标换算出全下标reshape 矩阵变维rot90 矩阵逆时针90°旋转sub2idn 据全下标换算出单下标tril 抽取下三角阵triu 抽取上三角阵4、特殊变量和常数(Special variables and constants)ans 最新表达式的运算结果eps 浮点相对误差i,j 虚数单位inf 或Inf 无穷大isfinite 若是有限数则为真isinf 若是无穷大则为真isnan 若为非数则为真NaN 或nan 非数pi 3.1415926535897?. realmax 最大浮点数realmin 最小正浮点数why 一般问题的简明答案5、特殊矩阵(Specialized matrices)compan 伴随矩阵gallery 一些小测试矩阵hadamard Hadamard 矩阵hankel Hankel 矩阵hilb Hilbert 矩阵invhilb 逆Hilbert 矩阵magic 魔方阵pascal Pascal 矩阵rosser 典型对称特征值实验问题toeplitz Toeplitz 矩阵vander Vandermonde 矩阵wilkinson Wilkinson's 对称特征值实验矩阵六Matlab基本数学函数1、三角函数(Trigonometric)acos 反余弦acosh 反双曲余弦acot 反余切acoth 反双曲余切acsc 反余割acsch 反双曲余割asec 反正割asech 反双曲正割asin 反正弦asinh 反双曲正弦atan 反正切atanh 反双曲正切atan2 四象限反正切cos 余弦cosh 双曲余弦cot 余切coth 双曲余切csc 余割csch 双曲余割sec 正割sech 双曲正割sin 正弦sinh 双曲正弦tan 正切tanh 双曲正切2、指数函数(Exponential)exp 指数log 自然对数log10 常用对数log2 以2 为底的对数nestpow2 最近邻的2 的幂pow2 2 的幂sqrt 平方根3、复数函数(Complex)abs 绝对值angle 相角complex 将实部和虚部构成复数conj 复数共轭cplxpair 复数阵成共轭对形式排列imag 复数虚部isreal 若是实数矩阵则为真real 复数实部unwrap 相位角360°线调整4、圆整和求余函数(Rounding and remainder)ceil 朝正无穷大方向取整fix 朝零方向取整floor 朝负无穷大方向取整mod 模数求余rem 求余数round 四舍五入取整sign 符号函数 6 特殊函数(Specialized math functions) cart2pol 直角坐标变为柱(或极)坐标cart2sph 直角坐标变为球坐标cross 向量叉积dot 向量内积isprime 若是质数则为真pol2cart 柱(或极)坐标变为直角坐标sph2cart 球坐标变为直角坐标七Matlab矩阵函数和数值线性代数1、矩阵分析(Matrix analysis)det 行列式的值norm 矩阵或向量范数normest 估计2 范数null 零空间orth 值空间rank 秩rref 转换为行阶梯形trace迹subspace 子空间的角度2、线性方程(Linear equations)chol Cholesky 分解cholinc 不完全Cholesky 分解cond 矩阵条件数condest 估计1-范数条件数inv 矩阵的逆lu LU 分解luinc 不完全LU 分解lscov 已知协方差的最小二乘积nnls 非负二乘解pinv 伪逆qr QR 分解rcond LINPACK 逆条件数\、/ 解线性方程3、特性值与奇异值(Eigenvalues and singular values)condeig 矩阵各特征值的条件数eig 矩阵特征值和特征向量eigs 多个特征值gsvd 归一化奇异值分解hess Hessenberg 矩阵poly 特征多项式polyeig 多项式特征值问题qz 广义特征值schur Schur 分解svd 奇异值分解svds 多个奇异值4、矩阵函数(Matrix functions)expm 矩阵指数expm1 矩阵指数的Pade 逼近expm2 用泰勒级数求矩阵指数expm3 通过特征值和特征向量求矩阵指数funm 计算一般矩阵函数logm 矩阵对数sqrtm 矩阵平方根5、因式分解(Factorization utility)cdf2rdf 复数对角型转换到实块对角型balance 改善特征值精度的平衡刻度rsf2csf 实块对角型转换到复数对角型八数据分析和傅里叶变换1、基本运算(Basic operations)cumprod 元素累计积cumsum 元素累计和cumtrapz 累计积分hist 统计频数直方图histc 直方图统计max 最大值mean 平均值median 中值min 最小值prod 元素积sort 由小到大排序sortrows 由小到大按行排序std 标准差sum 元素和trapz 梯形数值积分var 求方差2、有限差分(Finite differentces)del2 五点离散Laplacian diff 差分和近似微分gradient 梯度3、相关(Correlation)corrcoef 相关系数cov 协方差矩阵subspace 子空间之间的角度4、滤波和卷积(Filtering and convoluteion)conv 卷积和多项式相乘conv2 二维卷积convn N 维卷积detrend 去除线性分量deconv 解卷和多项式相除filter 一维数字滤波器fliter2 二维数字滤波器5、傅里叶变换(Fourier transforms)fft 快速离散傅里叶变换fft2 二维离散傅里叶变换fftn N 维离散傅里叶变换fftshift 重排fft 和fft2 的输出ifft 离散傅里叶反变换ifft2 二维离散傅城叶反变换ifftn N 维离散傅里叶反变换ifftshift 反fftshift九音频支持1、音频硬件驱动(Audio hardware drivers)sound 播放向量soundsc 自动标刻并播放waveplay 利用系统音频输出设配播放waverecor 利用系统音频输入设配录音2、音频文件输入输出(Audio file import and export)auread 读取音频文件(.au) auwrite 创建音频文件(.au) wavread 读取音频文件(.wav) wavwrite 创建音频文件(.wav)3、工具(Utilities)lin2mu 将线性信号转换为μ 一律编码的信号mu2lin 将μ 一律编码信号转换为线性信号十插补多项式函数1、数据插补(Data Interpolation)griddata 分格点数据griddata3 三维分格点数据griddatan 多维分格点数据interpft 利用FFT 方法一维插补interp1 一维插补interp1q 快速一维插补interp2 二维插补interp3 三维插补intern N 维插补pchip hermite 插补2 、样条插补(Spline Interpolation)ppval 计算分段多项式spline 三次样条插补3 、多项式(Polynomials)conv 多项式相乘deconv 多项式相除poly 由根创建多项式polyder多项式微分polyfit 多项式拟合polyint 积分多项式分析polyval 求多项式的值polyvalm 求矩阵多项式的值residue 求部分分式表达roots 求多项式的根十一数值泛函函数和ODE 解算器1、优化和寻根(Optimization and root finding)fminbnd 非线性函数在某区间中极小值fminsearch 单纯形法求多元函数极值点指令fzero 单变量函数的零点2、优化选项处理(Optimization Option handling)optimget 从OPTIONS 构架中取得优化参数optimset 创建或修改OPTIONS 构架3、数值积分(Numerical intergration)dblquad 二重(闭型)数值积分指令quad 低阶法数值积分quadl 高阶法数值积分4、绘图(Plotting)ezcontour 画等位线ezcontourf 画填色等位线ezmesh 绘制网格图ezmeshc 绘制含等高线的网格图ezplot 绘制曲线ezplot3 绘制3 维曲线ezpolar 采用极坐标绘图ezsurf 画曲面图ezsurfc 画带等位线的曲面图fplot 画函数曲线图5、内联函数对象(Inline function object)argnames 给出函数的输入宗量char 创建字符传输组或者将其他类型变量转化为字符串数组formula 函数公式inline 创建内联函数6、差微分函数解算器(Differential equation solvers)ode113 变阶法解方程ode15s 变阶法解刚性方程ode23 低阶法解微分方程ode23s 低阶法解刚性微分方程ode23t 解适度刚性微分方程odet23tb 低阶法解刚性微分方程ode45 高阶法解微分方程十二二维图形函数1、基本平面图形(Elementary X-Y graphs)loglog 双对数刻度曲线plot 直角坐标下线性刻度曲线plotyy 双纵坐标图polar 极坐标曲线图semilogx X 轴半对数刻度曲线semilogy Y 轴半对数刻度曲线2 、轴控制(Axis control)axes 创建轴axis 轴的刻度和表现box 坐标形式在封闭式和开启词式之间切换grid 画坐标网格线hold 图形的保持subplot 创建子图zoom 二维图形的变焦放大3、图形注释(Graph annotation)gtext 用鼠标在图上标注文字legend 图例说明plotedit 图形编辑工具text 在图上标注文字texlabel 将字符串转换为Tex 格式title 图形标题xlabel X 轴名标注ylabel Y 轴名标注4、硬拷贝(Hardcopy and printing)orient 设置走纸方向print 打印图形或把图存入文件printopt 打印机设置十三三维图形函数1、基本三维图形(Elementary 3-D plots) fill3 三维曲面多边形填色mesh 三维网线图plot3 三维直角坐标曲线图surf 三维表面图2 、色彩控制(Color control)alpha 透明色控制brighten 控制色彩的明暗caxis (伪)颜色轴刻度colordef 用色风格colormap 设置色图graymon 设置缺省图形窗口为单色显示屏hidden 消隐shading 图形渲染模式whitebg 设置图形窗口为白底3、光照模式(Lighting)diffuse 漫反射表面系数light 灯光控制lighting 设置照明模式material 使用预定义反射模式specular 漫反射surfnorm 表面图的法线surfl 带光照的三维表面图4 、色图(Color maps)autumn 红、黄浓淡色bone 蓝色调灰度图colorcube 三浓淡多彩交错色cool 青和品红浓淡色图copper 线性变化纯铜色调图flag 红-白-蓝黑交错色图gray 线性灰度hot 黑-红-黄-白交错色图hsv 饱和色彩图jet 变异HSV 色图lines 采用plot 绘线色pink 淡粉红色图prism 光谱色图spring 青、黄浓淡色summer 绿、黄浓淡色vga 16 色white 全白色winter 蓝、绿浓淡色5、轴的控制(Axis control)axes 创建轴axis 轴的刻度和表现box 坐标形式在封闭式和开启式之间切换daspect 轴的DataAspectRatio 属性grid 画坐标网格线hold 图形的保持pbaspect 画坐标框的PlotBoxAspectRatio 属性subplot 创建子图xlim X 轴范围ylim Y 轴范围zlim Z 轴范围zoom 二维图形的变焦放大6、视角控制(Viewpoint control)rotate3d 旋动三维图形view 设定3-D 图形观测点viewmtx 观测点转换矩阵7、图形注释(Graph annotation)colorbar 显示色条gtext 用鼠标在图上标注文字plotedit 图形编辑工具text 在图上标注文字title 图形标题xlabel X 轴名标注ylabel Y 轴名标注zlabel Z 轴名标注8 、硬拷贝(Hardcopy and printing)orient 设置走纸方向print 打印图形或把图存入文件printopt 打印机设置verml 将图形保存为VRML2.0 文件十四特殊图形1、特殊平面图形(Specialized 2-D graphs)area 面域图bar 直方图barh 水平直方图comet 彗星状轨迹图compass 从原点出发的复数向量图errorbar 误差棒棒图ezplot 画二维曲线ezpolar 画极坐标曲线feather 从X 轴出发的复数向量图fill 多边填色图fplot 函数曲线图hist 统计频数直方图pareto Pareto图pie 饼形统计图plotmatrix 散点图阵列scatter 散点图stairs 阶梯形曲线图stem 火柴杆图2 、等高线及二维半图形(Contour and 2-1/2D graphs)clabel 给等高线加标注contour 等高线图contourf 等高线图contour3 三维等高线ezcontour 画等位线ezcontourf 画填色等位线pcolor 用颜色反映数据的伪色图voronoi Voronoi 图3、特殊三维图形(Specialized 3-D graphs)bar3 三维直方图bar3h 三维水平直方图comet3 三维彗星动态轨迹线图ezgraph3 通用指令ezmesh 画网线图ezmeshc 画等位线的网线图ezplot3 画三维曲线ezsurf 画曲面图ezsurfc 画带等位线的曲面图meshc 带等高线的三维网线图meshz 带零基准面的三维网线图pie3 三维饼图ribbon 以三维形式绘制二维曲线scatter3 三维散点图stem3 三维离散杆图surfc 带等高线的三维表面图trimesh 三角剖分网线图trisurf 三角剖分曲面图waterfall 瀑布水线图4、内剖及向量视图(Volume and vector visualization)coneplot 锥体图contourslice 切片等位线图quiver 矢量场图quiver3 三维方向箭头图slice 切片图5、图像显示及文件处理(Image display and file I/O)brighten 控制色彩的明暗colorbar 色彩条状图colormap 设置色图contrast 提高图像对比度的灰色图gray 线性灰度image 显示图像imagesc 显示亮度图像imfinfo 获取图像文件的特征数据imread 从文件读取图像的数据阵(和伴随色图))imwrite 把强度图像或真彩图像写入文件6、影片和动画(Movies and animation)capture 当前图的屏捕捉frame2im 将影片动画转换为编址图像getframe 获得影片动画图像的帧im2frame 将编址图像转换为影片动画movie 播放影片动画moviein 影片动画内存初始化rotate 旋转指令7、颜色相关函数(Color related function)spinmap 颜色周期性变化操纵8、三维模型函数(Solid modeling)cylinder 圆柱面patch 创建块sphere 球面Surf2patch 将曲面数据转换为块数据十五句柄图形1、图形窗的产生和控制(Figure window creation and control)clf 清除当前图close 关闭图形figure 打开或创建图形窗口gcf 获得当前图的柄openfig 打开图形refresh 刷新图形shg 显示图形窗2、轴的产生和控制(Axis creation and control)axes 在任意位置创建轴axis 轴的控制box 坐标形式在封闭式和开启式之间切换caxis 控制色轴的刻度cla 清除当前轴gca 获得当前轴的柄hold 图形的保持ishold 若图形处保持状态则为真subplot 创建子图3、句柄图形对象(Handle Graphics objects)axex 在任意位置创建轴figure 创建图形窗口image 创建图像light 创建光line 创建线patch 创建块rectangle 创建方surface 创建面text 创建图形中文本uicontextmenu 创建现场菜单对象uicontrol 用户使用界面控制uimenu 用户使用菜单控制4、句柄图形处理(Handle Graphics operations)copyobj 拷贝图形对象及其子对象delete 删除对象及文件drawnow 屏幕刷新findobj 用规定的特性找寻对象gcbf "正执行回调操作"的图形的柄gcbo "正执行回调操作"的控件图柄指令gco 获得当前对象的柄get 获得对象特性getappdat 获得应用程序定义数据isappdata 检验是否应用程序定义数据reset 重设对象特性rmappdata 删除应用程序定义数据set 建立对象特性setappdata 建立应用程序定义数据5 、工具函数(Utilities)closereq 关闭图形窗请求函数ishandle 若是图柄代号侧为真newplot 下一个新图十六图形用户界面工具align 对齐用户控件和轴cbedit 编辑回调函数ginput 从鼠标得到图形点坐标guide 设计GUI menu 创建菜单menuedit 菜单编辑propedit 属性编辑uicontrol 创建用户界面控制uimenu 创建用户界面菜单十七字符串1 、通用字符串函数(General)blanks 空格符号cellstr 通过字符串数组构建字符串的元胞数组char 创建字符传输组或者将其他类型变量转化为字符串数组deblank 删除最后的空格double 把字符串变成ASCII 码值eval 执行串形式的MATLAB 表达式2、字符串查询(String tests)iscellstr 若是字符串组成的元胞数组则为真ischar 若是字符串则为真isletter 串中是字母则为真isspace 串中是空格则为真isstr 若是字符串则为真3、字符串操作(String operations)base2dec X-进制串转换为十进制整数bin2dec 二进制串转换为十进制整数dec2base 十进制整数转换为X 进制串dec2bin 十进制整数转换为二进制串dec2hex 十进制整数转换为16 进制串findstr 在一个串中寻找一个子串hex2dec 16-进制串转换为十进制整数hex2num 16-进制串转换为浮点数int2str 将整数转换为字符串lower 把字符串变成小写mat2str 将数组转换为字符串num2str 把数值转换为字符串strcat 把多个串连接成长串strcmp 比较字符串strcmpi 比较字符串(忽略大小写)stringsMATLAB 中的字符串strjust 字符串的对齐方式strmatch 逐行搜索串strnomp 比较字符串的前N 个字符strncmpi 比较字符串的前N 个字符(忽略大小写)strrep 用另一个串代替一个串中的子串strtok 删除串中的指定子串strvcat 创建字符串数组str2mat 将字符串转换为含有空格的数组str2num 将字符串转换为数值upper 把字符串变成大写十八文件输入/输出clc 清除指令窗口disp 显示矩阵和文字内容fprintf 把格式化数据写到文件或屏幕home 光标返回行首input 提示键盘输入load 从磁盘中调入数据变量pause 暂停sprintf 写格式数据到串sscanf 在格式控制下读串十九时间和日期clock 时钟cputme MATLAB 战用CPU 时间date 日期etime 用CLOCK 计算的时间now 当前时钟和日期pause 暂停tic 秒表启动toc 秒表终止和显示二十数据类型1、数据类型(Data types)cell 创建元胞变量char 创建字符传输组或者将其他类型变量转化为字符串数组double 转化为16 位相对精度的浮点数值对象function handle 函数句柄inline 创建内联函数JavaArray 构建Java 数组JavaMethod 调用某个Java 方法JavaObject 调用Java 对象的构造函数single 转变为单精度数值sparse 创建稀疏矩阵struct 创建构架变量uint8(unit16、unit32) 转换为8(16、32)位无符号整型数int8(nit16、nit32) 转换为8(16、32)位符号整型数2、多维数组函数(Multi-dimensional array functions)cat 把若干数组串接成高维数组ndims 数组A 的维数ndgrid 为N-D 函数和插补创建数组ipermute 广义反转置permute 广义非共轭转置shiftdim 维数转换squeeze 使数组降维3、元胞数组函数(Cell array functions)cell 创建元胞变量celldisp 显示元胞数组内容cellfun 元胞数组函数cellplot 图示元胞数组的内容cell2struct 把元胞数组转换为构架数组deal 把输入分配给输出is cell 若是元胞则为真num2 cell 把数值数组转换为元胞数组struct2 cell 把构架数组转换为元胞数组4、构架函数(Structure functions)fieldnames 获取构架的域名getfield 获取域的内容isfield 若为给定构架的域名则为真isstruct 若是构架则为真rmfield 删除构架的域setfield 指定构架域的内容struct 创建构架变量5、函数句柄函数(Function handle functions)@ 创建函数句柄functions 列举函数句柄对应的函数func2str 将函数句柄数组转换为字符串str2func 将字符串转换为函数句柄6、面向对象编程(Object oriented programming functions)dlass 查明变量的类型isa 若是指定的数据类型则为真inferiorto 级别较低isjava 若是java 对象则为真isobject 若是对象则为真methods 显示类的方法名substruct 创建构架总量superiorto 级别较高二一示例demo 演示程序flow 无限大水体中水下射流速度数据intro 幻灯演示指令peaks 产生peaks 图形数据二二符号工具包1、微积分(Calculus)diff 求导数limit 求极限int 计算积分jacobian Jacobian 矩阵symsum 符号序列的求和trylor Trylor 级数2、线性代数(Linear Algebra)det 行列式的值diag 创建对角阵,抽取对角向量eig 矩阵特征值和特征向量expm 矩阵指数inv 矩阵的逆jordan Jordan 分解null 零空间poly 特征多项式rank 秩rref 转换为行阶梯形svd 奇异值分解tril 抽取下三角阵triu 抽取上三角阵3、化简(Simplification)collect 合并同类项expand 对指定项展开factor 进行因式或因子分解horner 转换成嵌套形式numden 提取公因式simple 运用各种指令化简符号表达式simplify 恒等式简化subexpr 运用符号变量置换子表达式subs 通用置换指令4、方程求解(Solution of Equation)compose 求复函数dsolve 求解符号常微分方程finverse 求反函数fminunc 拟牛顿法求多元函数极值点fsolve 解非线性方程组lsqnonlin 解非线性最小二乘问题solve 求解方程组5、变量精度(Variable Precision Arithmetic)digits 设置今后数值计算以n 位相对精度进行vpa 给出数值型符号结果6、积分变换(Integral Transforms)fourier Fourier 变换ifourier Fourier 反变换ilaplace Ilaplace 反变换iztrans Z 反变换laplace Ilaplace 变换ztrans Z 变换7、转换(Conversions)char 把符号对象转化为字符串数组double 把符号常数转化为16 位相对精度的浮点数值对象poly2sym 将多项式转换为符号多项式sym2poly 将符号多项式转换为系数向量8、基本操作(Basic Operation)ccode 符号表达式的C 码表达式findsym 确认表达式中符号"变量" fortran 符号表达式的fortran 表达式latex 符号表达式的LaTex 表示pretty 习惯方式显示sym 定义基本符号对象syms 定义基本符号对象9、串处理函数(String handling utilities)isvarname 检查是否为有效的变量名vectorize 将字符串表达式或内联函数对象向量化10 、图形应用(Pedagogical and Graphical Applications)ezcontour 画等位线ezcontourf 画填色等位线ezmesh 画网线图ezmeshc 带等位线的网线图ezplot 绘制符号表达式的图形ezplot2。

AM调制解调及matlab仿真程序和图

AM调制解调及matlab仿真程序和图

(1所用滤波器函数:巴特沃斯滤波器% 注 : wp(或 Wp 为通带截止频率 ws(或 Ws 为阻带截止频率 Rp为通带衰减 As 为阻带衰减%butterworth低通滤波器原型设计函数要求 Ws>Wp>0 As>Rp>0function [b,a]=afd_butt(Wp,Ws,Rp,AsN=ceil((log10((10^(Rp/10-1/(10^(As/10-1/(2*log10(Wp/Ws;%上条语句为求滤波器阶数 N为整数%ceil 朝正无穷大方向取整fprintf('\n Butterworth Filter Order=%2.0f\n',NOmegaC=Wp/((10^(Rp/10-1^(1/(2*N %求对应于 N 的 3db 截止频率[b,a]=u_buttap(N,OmegaC;(2傅里叶变换函数function [Xk]=dft(xn,Nn=[0:1:N-1];k=[0:1:N-1];WN=exp(-j*2*pi/N;nk=n'*k;WNnk=WN.^(nk;Xk=xn*WNnk;设计部分:1. 普通 AM 调制与解调%单音普通调幅波调制 y=amod(x,t,fs,t0,fc,Vm0,ma要求 fs>2fc%x调制信号, t 调制信号自变量 ,t0采样区间, fs 采样频率,%fc载波频率, Vm0输出载波电压振幅, ma 调幅度t0=0.1;fs=12000;fc=1000;Vm0=2.5;ma=0.25;n=-t0/2:1/fs:t0/2;x=4*cos(150*pi*n; %调制信号y2=Vm0*cos(2*pi*fc*n; %载波信号 figure(1subplot(2,1,1;plot(n,y2;axis([-0.01,0.01,-5,5];title('载波信号 ';N=length(x;Y2=fft(y2; subplot(2,1,2;plot(n,Y2;title('载波信号频谱 '; %画出频谱波形 y=Vm0*(1+ma*x/Vm0.*cos(2*pi*fc*n; figure(2subplot(2,1,1;plot(n,xtitle('调制信号 ';subplot(2,1,2plot(n,ytitle('已调波信号 ';X=fft(x;Y=fft(y;w=0:2*pi/(N-1:2*pi; figure(3subplot(2,1,1;plot(w,abs(X axis([0,pi/4,0,2000]; title('调制信号频谱 ';subplot(2,1,2;plot(w,abs(Y axis([pi/6,pi/4,0,1200];title('已调波信号频谱 '; %画出频谱波形 y1=y-2*cos(800*pi*n;y2=Vm0*y1.*cos(2*pi*fc*n; %将已调幅波信号的频谱搬移到原调制信号频谱处 wp=40/N*pi;ws=60/N*pi;Rp=1;As=15;T=1; %滤波器参数设计OmegaP=wp/T;OmegaS=ws/T;[cs,ds]=afd_butt(OmegaP,OmegaS,Rp,As; [b,a]=imp_invr(cs,ds,T; y=filter(b,a,y2; figure(4subplot(2,1,1;plot(n,y title('解调波 '; Y=fft(y;subplot(2,1,2;plot(w,abs(Y axis([0,pi/6,0,1000];title('解调信号频谱 '; %画出频谱波形结果:Butterworth Filter Order= 6 OmegaC = 0.1171载波信号载波信号频谱-4-2024调制信号-4-2024已调波信号调制信号频谱已调波信号频谱解调波解调信号频谱解调波解调信号频谱2. 抑制双边带调制与解调%单音抑制载波双边带调制 y=amod(x,t,fs,t0,fc,Vm0,ma要求 fs>2fc %x调制信号, t0采样区间, fs 采样频率,%fc载波频率, Vm0输出载波电压振幅, ma 调幅度t0=0.1;fs=12000;fc=1000;Vm0=2.5;ma=0.25;n=-t0/2:1/fs:t0/2;x=4*cos(150*pi*n; %调制信号y=Vm0*x.*cos(2*pi*fc*n; %载波信号 figure(1subplot(2,1,1plot(n,xtitle('调制信号 ';subplot(2,1,2plot(n,ytitle('已调波信号 ';N=length(x;X=fft(x;Y=fft(y;w=0:2*pi/(N-1:2*pi;figure(2subplot(2,1,1plot(w,abs(Xaxis([0,pi/4,0,2000];title('调制信号频谱 '; %画出频谱波形 subplot(2,1,2plot(w,abs(Y axis([pi/6,pi/4,0,2200];title('已调波信号频谱 '; %画出频谱波形 y1=y-2*cos(2000*pi*n;y2=Vm0*y1.*cos(2*pi*fc*n; %将已调幅波信号的频谱搬移到原调制信号频谱处 wp=40/N*pi;ws=60/N*pi;Rp=1;As=15;T=1; %滤波器参数设计OmegaP=wp/T;OmegaS=ws/T;[cs,ds]=afd_butt(OmegaP,OmegaS,Rp,As; [b,a]=imp_invr(cs,ds,T;y=filter(b,a,y2;figure(3subplot(2,1,1plot(n,ytitle('解调波 ';Y=fft(y;subplot(2,1,2plot(w,abs(Yaxis([0,pi/6,0,5000];title('解调信号频谱 '; %画出频谱波形结果:Butterworth Filter Order= 6 OmegaC = 0.1171调制信号已调波信号500100015002000调制信号频谱500100015002000已调波信号频谱解调波解调信号频谱3. 单边带调制与解调%单音单边带调制 y=amod(x,t,fs,t0,fc,Vm0,ma要求 fs>2fc %x调制信号, t0采样区间, fs 采样频率, %fc载波频率, Vm0输出载波电压振幅, ma 调幅度t0=0.1;fs=12000; fc=1000;Vm0=2.5;ma=0.25; n=-t0/2:1/fs:t0/2; N=length(n;x1=4*cos(150*pi*n; %调制信号 x2=hilbert(x1,N;y=(Vm0*x1.*cos(2*pi*fc*n-Vm0*x2.*sin(2*pi*fc*n/2; figure(1 subplot(2,1,1plot(n,x1 title('调制信号 '; subplot(2,1,2 plot(n,ytitle('已调波信号 '; X=fft(x1; Y=fft(y;w=0:2*pi/(N-1:2*pi; figure(2 subplot(2,1,1plot(w,abs(X axis([0,pi/4,0,3000]; title('调制信号频谱'; subplot(2,1,2 plot(w,abs(Y axis([pi/6,pi/4,0,2500]; title('已调波信号频谱'; %画出频谱波形 y1=y-2*cos(1500*pi*n; y2=Vm0*y1.*cos(2*pi*fc*n; % 将已调幅波信号的频谱搬移到原调制信号频谱处wp=40/N*pi;ws=60/N*pi;Rp=1;As=15;T=1; %滤波器参数设计OmegaP=wp/T;OmegaS=ws/T; [cs,ds]=afd_butt(OmegaP,OmegaS,Rp,As;[b,a]=imp_invr(cs,ds,T; y=filter(b,a,y2; figure(3 subplot(2,1,1 plot(n,y title('解调波';Y=fft(y; subplot(2,1,2 plot(w,abs(Y axis([0,pi/6,0,2500]; title('解调信号频谱'; OmegaC = 0.1171 %画出频谱波形结果:Butterworth Filter Order= 6 %画出频谱波形调制信号 4 2 0 -2 -4 -0.05 -0.04 -0.03 -0.02 -0.01 0 0.01 0.02 0.03 0.04 0.05 已调波信号 10 5 0 -5 -10 -0.05 -0.04 -0.03 -0.02 -0.01 0 0.01 0.02 0.03 0.04 0.05 调制信号频谱 3000 2000 1000 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 已调波信号频谱 2500 2000 1500 1000 500 0 0.55 0.6 0.65 0.7 0.75 解调波 10 5 0 -5 -10 -0.05 -0.04 -0.03 -0.02 -0.01 0 0.01 0.02 0.03 0.04 0.05 解调信号频谱 2500 2000 1500 1000 500 0 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 7 参考文献 [1] 信号与系统课程组. 信号与系统课程设计指导,2007.10 [2] 吴大正. 信号与线性系统分析(第四版). 高等教育出版社,2005.8[3] 谢嘉奎. 电子线路—非线性部分(第四版. 高等教育出版社,2003,2 [4] 黄永安等.Matlab7.0/Simulink6.0 建模仿真开发与高级工程应用. 清华大学出版社,2005.12 [5] 江建军. LabVIEW 程序设计教程. 电子工业出版社, 2008.03 [6]张化光,孙秋野.MATLAB/Simulink 实用教程. 北京人民邮电出版社, 2009。

用MATLAB实现的BPSK调制解调源程序

用MATLAB实现的BPSK调制解调源程序

demodulation.m
function output_frame = demodulation(input_modu, index)
% demodulation for IEEE802.11a
% Input: input_modu, complex values representing constellation points
QAM_input_I(idx) = -1;
output_frame = BPSK_Demodu_I(round((QAM_input_I+1)/2) + 1);
case 2,
QPSK_Demodu_IQ = [0 1]; %f(m)=(m+1)/2 + 1, so I=-1 ---> 1, I=1 ---> 2
case 4,
QAM_16_IQ = [-3 -1 3 1]; % refer to Table84 on page21 of IEEE802.11a
QAM_input_I = QAM_16_IQ(frame(1:4:end)*2+input_frame(2:4:end)+1);
output_modu=mapping(input_frame(1:5:end)*16+input_frame(2:5:end)*8+input_frame(3:5:end)*4+input_frame(4:5:end)*2+input_frame(5:5:end)+1);
case 6,
switch index
case 1,
BPSK_I = [-1 1]; % refer to Table82 on page21 of IEEE802.11a

MATLAB实现信号的调制与解调

MATLAB实现信号的调制与解调

MATLAB实现信号的调制与解调调制与解调是数字通信系统中重要的技术,它们用于将信息信号转换为适合传输的调制信号,并在接收端将调制信号还原为原始的信息信号。

在MATLAB中,可以通过使用信号处理工具箱的函数实现信号的调制与解调。

下面将详细介绍信号的调制与解调的MATLAB实现方法。

一、信号的调制调制是将信息信号转换为调制信号的过程。

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

下面以振幅调制为例,介绍信号的调制方法。

1.生成调制信号首先,需要生成调制信号。

假设我们有一个原始的音频信号,可以使用MATLAB的`audioread`函数读取音频文件,并使用`resample`函数进行重采样。

```matlab[y, fs] = audioread('original_audio.wav');y_resampled = resample(y, fs_new, fs);```2.进行振幅调制接下来,将原始音频信号进行振幅调制。

可以使用MATLAB中的`ammod`函数进行调制。

```matlabAc=1;%载波幅度t = (0:length(y_resampled)-1)/fs_new;modulated_signal = ammod(y_resampled, fc, fs_new, Ac);```3.可视化调制信号最后,可以使用MATLAB的`plot`函数对调制信号进行可视化。

```matlabfigure;plot(t, modulated_signal);xlabel('Time (s)');ylabel('Modulated Signal');title('Amplitude Modulated Signal');```二、信号的解调解调是将调制信号还原为原始信号的过程。

下面以振幅调制为例,介绍信号的解调方法。

2FSK信号的调制与解调matlab程序

2FSK信号的调制与解调matlab程序

clear all;close all;f = 300;t = 2*(0:0.001:1—0。

01)/f;x = t;singal= sin(2*pi*f*x)+1;% % %% % %% % % %%%%%%% % %%%%% %% % %%%% % %%%%u率PCM编码%%% %% % %%% % %% %%% % %% %% %%% % %% %% % %%%%%a = singal;n = 8;%u率非线性u = 255;%%%%%%%%%%%%待考察,应该是255%%%%%%c = zeros(size(a));for i = 1:length(a)c(i)= log(1+u*a(i))/log(1+u); %在PCM中要求x应该大于0endcmax = max(c);cmin = min(c);%均匀量化c_quan = c;b_quan = c_quan;d = (cmax - cmin)/n; %此处有问题%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % %%% % %% % % %自己写的量化代码%%%% %%%%% %%%for j = 1:n+1kk(j)= cmin + j*d;endfor k = 1:nq(k)= (kk(k)+kk(k+1))/2;end% % % %% % %%%% % %%% % %%% %% % %%% % % %%% %%% %%%for i = 1:nm = find((q(i)—d/2 <= c_quan) & (q(i)+d/2 >= c_quan));c_quan(m)= q(i).*ones(1,length(m));b_quan(find(c_quan==q(i))) = (i—1)。

*ones(1,length(find(c_quan==q(i))));end%编码nu = ceil(log2(n));code = zeros(length(a),nu);for i = 1:length(a)for j = (nu—1):-1:0if (fix(b_quan(i)/(2^j))==1)code(i,(nu-j)) = 1;b_quan(i) = b_quan(i)-2^j;endendendbitstorm = [];for i = 1:length(code)bitstorm = [bitstorm,code(i,:)];end%% % %%%%% % % %% % %%% %% %%% % % %%% %%%% % % %%%% % %% % %% FSK调制的实现%%% %% % % %%% % %% %% %%%% % %% % %%% %% %% %% %% %% %% % % %figure(1)subplot(221);stairs (bitstorm(1:20));title(’调制信号’);axis([0,20,—0。

ssb调制和解调的matlab程序

ssb调制和解调的matlab程序

一、概述信号调制和解调是通信领域中非常重要的技术,它涉及到信号的传输和恢复以及系统的性能优化。

在调制解调技术中,SSB(Single Side Band)调制是一种常用的调制技术,它可以将基带信号转换成一个侧带信号,从而减小信号的带宽,提高信号传输的效率。

在本文中,我们将介绍如何使用Matlab编写SSB调制和解调的程序。

二、SSB调制的Matlab程序编写1. 信号的生成我们需要生成一个基带信号。

我们可以使用Matlab的信号生成函数来创建一个频率为f的正弦信号,表示为s(t)=A*cos(2*pi*f*t),其中A为信号的幅度,f为信号的频率,t为时间变量。

这个正弦信号将作为SSB调制的输入信号。

2. 调制接下来,我们需要对生成的基带信号进行SSB调制。

SSB调制的本质是将基带信号进行频率偏移,使得信号只存在一个侧带。

我们可以使用Matlab的频谱平移函数来实现SSB调制,具体的步骤如下:(1) 对基带信号进行频谱平移,使得信号的频率向上或向下偏移f,即sSB(t) = s(t)*exp(j*2*pi*f*t)。

(2) 使用Matlab的滤波函数对平移后的信号进行滤波,得到SSB调制后的信号sSB(t)。

3. 绘制频谱在得到SSB调制后的信号后,我们可以使用Matlab的频谱分析函数对信号的频谱进行分析,得到信号的频谱图像。

这可以帮助我们验证SSB调制的效果,确保信号只存在一个侧带。

三、SSB解调的Matlab程序编写1. 接收信号在进行SSB解调之前,我们首先需要先接收到SSB调制后的信号。

我们可以使用Matlab的通信接收函数来模拟信号的接收过程,并得到接收的信号sR(t)。

2. 解调接下来,我们需要对接收到的信号进行SSB解调。

SSB解调的本质是将信号的频率还原到原始的基带频率。

具体的步骤如下:(1) 对接收到的信号进行频谱平移的逆操作,得到平移前的信号sD(t) = sR(t)*exp(-j*2*pi*f*t)。

matlab中2ask的调制与解调

matlab中2ask的调制与解调

一、引言在数字通信领域,调制与解调是非常重要的一环。

通过调制技术,可以将模拟信号转换为数字信号,利用传统的信号传输媒介进行传输。

另解调技术则是将数字信号还原为模拟信号,以便接收端进行正确解读和处理。

在MATLAB中,2ASK调制与解调是比较常用的一种数字调制技术,本文将着重介绍MATLAB中2ASK的调制与解调过程,以及相关的应用和实例。

二、2ASK调制的原理2ASK(2-Amplitude Shift Keying)调制是一种基本的数字调制方式,其原理是通过调整载波的振幅来表示数字信号的0和1。

在2ASK调制中,0和1分别对应两个不同的载波振幅。

当数字信号为0时,载波振幅取低电平;当数字信号为1时,载波振幅取高电平。

通过这种方式,可以将数字信号转化为具有不同振幅的调制信号。

三、MATLAB中2ASK调制的实现1. 生成调制载波在MATLAB中,可以通过生成正弦波信号来模拟调制载波。

首先需要确定载波频率和振幅,然后利用MATLAB中的sin函数生成对应的正弦波信号。

代码示例如下:```matlabfc = 1000; 载波频率t = 0:0.001:1; 时间范围carrier = sin(2*pi*fc*t); 生成载波信号```2. 生成数字信号接下来需要生成要进行调制的数字信号。

这里以一个简单的二进制信号为例,代码示例如下:```matlabdata = [0 1 0 1 1 0 1 0]; 二进制数字信号```3. 进行调制将数字信号转化为2ASK调制信号的过程可以通过简单的逻辑运算实现。

当数字信号为1时,将载波信号的振幅取为高电平;当数字信号为0时,将载波信号的振幅取为低电平。

代码示例如下:```matlabmodulated_signal = zeros(1, length(data));for i = 1:length(data)if data(i) == 1modulated_signal((i-1)*1000+1:i*1000) = carrier;elsemodulated_signal((i-1)*1000+1:i*1000) = 0;endend```四、2ASK解调的原理2ASK解调的原理与调制相反,即通过对接收的调制信号进行处理,提取出原始的数字信号。

基于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中,没有直接求参数方程确定的函数的导数的命令,只能根据参数方程确定的函数的求导公式一步一步地进行推导;或者,干脆自己编一个小程序,应用起来会更加方便。

matlab qpsk调制解调代码

matlab qpsk调制解调代码

一、介绍Matlab是一种专门用于科学计算和数据可视化的强大工具,QPSK调制解调是数字通信领域中常用的调制解调技术。

本文将介绍如何使用Matlab编写QPSK调制解调的代码。

二、QPSK调制原理QPSK是Quadrature Phase Shift Keying的缩写,即正交相移键控。

在QPSK调制中,将输入的数字比特流分成两路,分别用正弦波和余弦波进行调制。

通过将正弦波和余弦波的相位进行调整,可以将数字比特流转换为模拟信号进行传输。

三、QPSK调制过程1.将输入的数字比特流分为两路,分别表示为I路和Q路。

2.将I路比特流进行调制,使用正弦波作为载波信号,调整相位进行调制。

3.将Q路比特流进行调制,使用余弦波作为载波信号,调整相位进行调制。

4.将调制后的信号进行合并,得到QPSK调制信号。

四、QPSK解调过程1.接收到QPSK调制信号后,将信号分为I路和Q路。

2.将I路信号与正弦波进行乘积运算并积分,得到解调后的I路比特流。

3.将Q路信号与余弦波进行乘积运算并积分,得到解调后的Q路比特流。

五、Matlab QPSK调制解调代码实现```matlab生成随机QPSK调制信号data = randi([0, 1], 1, 1000); 生成随机比特流I = data(1:2:end); 取偶数位作为I路数据Q = data(2:2:end); 取奇数位作为Q路数据symbols = 2*I-1 + 1i*(2*Q-1); 将I路和Q路数据映射为QPSK符号显示QPSK调制信号scatterplot(symbols); 显示QPSK调制信号的星座图QPSK解调data_est = zeros(1, length(data));data_est(1:2:end) = real(symbols) > 0; 解调I路数据data_est(2:2:end) = imag(symbols) > 0; 解调Q路数据```六、总结本文介绍了QPSK调制解调的原理和过程,并给出了使用Matlab实现QPSK调制解调的代码。

用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]。

fsk调制解调 MATLAB仿真程序

fsk调制解调 MATLAB仿真程序

fsk调制解调 MATLAB仿真程序[ 标签:fsk,matlab,仿真程序 ]clear allclose alli=10;%基带信号码元数j=5000;a=round(rand(1,i));%产生随机序列t=linspace(0,5,j); f1=10;%载波1频率f2=5;%载波2频率fm=i/5;%基带信号频率B1=2*f1;%载波1带宽B2=2*f2;%载波2带宽%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生基带信号st1=t;for n=1:10if a(n)<1;for m=j/i*(n-1)+1:j/i*nst1(m)=0;endelsefor m=j/i*(n-1)+1:j/i*nst1(m)=1;endendendst2=t; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%基带信号求反for n=1:j;if st1(n)>=1;st2(n)=0;elsest2(n)=1;endend;figure(1);subplot(411);plot(t,st1);title('基带信号');axis([0,5,-1,2]);subplot(412);plot(t,st2);title('基带信号反码');axis([0,5,-1,2]); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波信号s1=cos(2*pi*f1*t)s2=cos(2*pi*f2*t)subplot(413),plot(s1); title('载波信号1');subplot(414),plot(s2); title('载波信号2'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%调制F1=st1.*s1;%加入载波1F2=st2.*s2;%加入载波2figure(2);subplot(411); plot(t,F1);title('s1*st1'); subplot(412); plot(t,F2);title('s2*st2'); e_fsk=F1+F2;subplot(413); plot(t,e_fsk); title('2FSK信号')nosie=rand(1,j); fsk=e_fsk+nosie;a subplot(414); plot(t,fsk); title('加噪声信号') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解调st1=fsk.*s1;%与载波1相乘[f,sf1] = T2F(t,st1);%通过低通滤波器 [t,st1] = lpf(f,sf1,2*fm); figure(3);subplot(311); plot(t,st1);title('与载波1相乘后波形'); st2=fsk.*s2;%与载波2相[f,sf2] = T2F(t,st2);%通过低通滤波器 [t,st2] = lpf(f,sf2,2*fm); subplot(312);plot(t,st2);title('与载波2相乘后波形');for m=0:i-1; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%抽样判决if st1(1,m*500+250)<0.25; for j=m*500+1:(m+1)*500; at(1,j)=0;endelsefor j=m*500+1:(m+1)*500; at(1,j)=1;endendend;subplot(313);plot(t,at);axis([0,5,-1,2]);title('抽样判决后波形')这个程序采用的是怎么产生FSK的波形的是利用模拟调频法还是键控法啊有没有高手给我说下matlab simulink model :打开进入新建一个。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
axis([0 22 0 200]);
title('解调器输出信号频谱');
xlabel('频率/kHz');
ylabel('振幅');grid on;
figure;
%同频但不同相时输出信号
fs=100000;
dt=1/fs;
t=0:dt:0.01;
Ct1=cos(2*pi*fc*t+pi/8);
subplot(323);
plot(f,mag2);
axis([0 20 0 400]);
title('DSB已调信号频谱');
xlabel('频率/kHz');
ylabel('振幅');grid on;
subplot(324);
plot(f,mag3);
axis([0 20 0 400]);
title('AM已调信号频谱');
xlabel('频率/kHz');
ylabel('振幅');grid on;
subplot(325);
plot(f,mag4);
axis([0 20 0 400]);
title('SSB已调下边带信号频谱');
xlabel('频率/kHz');
ylabel('振幅');grid on;
mag=abs(h1);
f=n*fs/(1000*N); %频率序列
subplot(311);
plot(f,mag);
axis([0 22 0 200]);
title('解调乘法器输出信号频谱');
xlabel('频率/kHz');
ylabel('振幅');grid on;
clear;
clear all;
%调制信号
fs=100000;
fm=1000;
dt=1/fs;
t=0:dt:0.01;
mt=cos(2*pi*fm*t);
subplot(2,1,1);
plot(t,mt);grid on;
title('调制信号mt=cos(pi*t)的波形');
n=0:N-1;t=n/fs; %时间序列
y=fft(h2,N); %对信号进行快速Fourier变换
mag=abs(y); %求得Fourier变换后的振
f=n*fs/(1000*N); %频率序列
subplot(313);
plot(f,mag); %绘出随频率变化的振幅
N=1000;
B=fir1(16,wc/pi);
[h,w]=freqz(B, 1, N);
x=w*fs/(2*pi)/1000;
y=20*log10(abs(h));
B;
plot(x,y);grid on;
axis([0 40 -100 0]);
xlabel('k/hz');
title('低通滤波器的频率相应');
subplot(224);
plot(t,h2);grid on;
axis([0 0.01 -0.5 0.5]);
title('DSB解调相位差pi/2信号');
Hale Waihona Puke %载波信号 fc=10000;
Ct=cos(2*pi*fc*t);
subplot(2,1,2);
plot(t,Ct);
title('载波信号波形');
figure;
%writed by zhangchenglong
%AM调制
A=1;
SAM=(A+mt).*Ct;
subplot(3,1,1);
axis([0 0.01 -2 2]);
title('dsb调制后的波形');
subplot(3,1,3);
plot(t,mt);
axis([0 0.01 -2 2]);
title('调制信号');
figure;
%SSB相移法
SSB1=(1/2)*mt.*Ct+(1/2)*sin(2*pi*fm*t).*sin(2*pi*fc*t);%下边带
subplot(326);
plot(f,mag5);
axis([0 20 0 400]);
title('SSB上边带已调信号频谱');
xlabel('频率/kHz');
ylabel('振幅');grid on;
figure;
%绘制低通滤波器频率响应
wc=1.5*2*pi*fm/fs;
SSB2=(1/2)*mt.*Ct-(1/2)*sin(2*pi*fm*t).*sin(2*pi*fc*t);%上边带
%对各信号求频谱做fft变换
N=2048; %采样频率和数据点数
n=0:N-1; t=n/fs; %时间序列
figure;
%对DSB乘法器输出和解调器输出做频谱分析并得到输出信号
h=DSB.*Ct;
N=2048; %采样频率和数据点数
n=0:N-1; t=n/fs; %时间序列
h1=fft(h,N); %对信号进行快速Fourier变换
h=DSB.*Ct1;
%cross the lpf
h2=filter(B,1,h);
subplot(221);
plot(t,h2);grid on;
axis([0 0.01 -0.5 0.5]);
title('DSB解调相位差pi/8信号');
Ct1=cos(2*pi*fc*t+pi/4);
h=DSB.*Ct1;
h2=filter(B,1,h);
subplot(222);
plot(t,h2);grid on;
axis([0 0.01 -0.5 0.5]);
title('DSB解调相位差pi/4信号');
Ct1=cos(2*pi*fc*t+pi/3);
h=DSB.*Ct1;
%cross the lpf
fs=100000;
dt=1/fs;
t=0:dt:0.01;
h2=filter(B,1,h);
subplot(312);
plot(t,h2);grid on;
title('DSB解调信号');
%对解调器输出做fft变换
N=2048; %采样频率和数据点数
plot(t,SAM);grid on;hold on;
plot(t,A+mt,'r');
axis([0 0.01 -2 2]);
title('AM调制后的波形');
%DSB调制
DSB=mt.*Ct;
subplot(3,1,2);
plot(t,DSB,'b');grid on;
y4=fft(SSB1,N);
mag4=(abs(y4));
y5=fft(SSB2,N);
mag5=(abs(y5));
f=n*fs/(1000*N); %频率序列
subplot(321);
plot(f,mag); %绘出随频率变化的振幅
axis([0 20 0 400]);
h2=filter(B,1,h);
subplot(223);
plot(t,h2);grid on;
axis([0 0.01 -0.5 0.5]);
title('DSB解调相位差pi/3信号');
Ct1=cos(2*pi*fc*t+pi/2);
h=DSB.*Ct1;
h2=filter(B,1,h);
y=fft(mt,N); %对信号进行快速Fourier变换
mag=abs(y);
y1=fft(Ct,N);
mag1=(abs(y1));
y2=fft(DSB,N);
mag2=(abs(y2));
y3=fft(SAM,N);
mag3=(abs(y3));
title('调制信号频谱');
xlabel('频率/kHz');
ylabel('振幅');grid on;
subplot(322);
plot(f,mag1);
axis([0 20 0 400]);
title('载波信号频谱');
xlabel('频率/kHz');
ylabel('振幅');grid on;
相关文档
最新文档