FSK调制解调MATLAB源代码.doc

上传人:豆**** 文档编号:23963089 上传时间:2022-07-02 格式:DOC 页数:113 大小:206KB
返回 下载 相关 举报
FSK调制解调MATLAB源代码.doc_第1页
第1页 / 共113页
FSK调制解调MATLAB源代码.doc_第2页
第2页 / 共113页
点击查看更多>>
资源描述

《FSK调制解调MATLAB源代码.doc》由会员分享,可在线阅读,更多相关《FSK调制解调MATLAB源代码.doc(113页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateFSK调制解调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=SNR

2、pBit/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)

3、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

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,F

5、d,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);figur

6、e(8)simbasebandex(0:1:5);title(相干解调后误码率统计)errorSym ratioSym=symerr(x,z2); figure(9)simbasebandex(0:1:5);title(非相干解调后误码率统计)%滤除高斯白噪声Delay=3;R=0.5ropD=0; %滞后3syf,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(

7、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调制后,使用模拟线路进行传输,其中,载波

8、频率为4kHz,数字“1”对应有载波,数字“0”对应无载波,接收端接收到信号后使用载波信号为模板进行相关解调。考虑信道中存在不同的加性高斯白噪声的情况下,分析此时该系统的误码性能。设计内容3的操作步骤:1、根据假设,系统信息速率为1kbps,考察1s内系统的误码性能,即需要随机生成1000个“0”,“1”数据,每一位信息所占时间片大小为1ms。(round(rand(1,1000))2、由于系统载波频率为4kHz,生成载波信号Ca=sin(2*pi*4000*t),进行AM调制,若信息为“1”,载波幅度为1,若信息为“0”,载波幅度为0。例如,若第n位数据为“1”,则在第n位数据对应的时间片(

9、n-1)ms=t=(limitation/2) % Determination criteria, 25 is the limited value rxn(m2) = 1; else rxn(m2) = 0; end if(rxn(m2)=xn(m2) bercnt = bercnt+1; end% ifendber = bercnt/N;disp(信噪比为:);snrdisp(误码率为:);ber% sum(rxn-xn)subplot(311)stem(xn,rx),title(原始信号),xlabel(t/0.001s),axis(1 21 -.25 1.25)subplot(313)s

10、tem(rxn,kx),title(解调信号),xlabel(t/0.001s),axis(1 21 -.25 1.25)subplot(312),plot(mod_sig),title(已调信号),axis(0 2000 -1.5 1.5)PSK信号载波相位符号定时联合估计程序载波环采用判决反馈环,去除噪声平方损耗,定时模块采用早迟原理,里边有详细的注释,希望对大家有用。点击即可运行。注:请注意m文件命名不要以数字开头,已修改。文件可运行。%opsk simulation V3.0,%edit by leeemail=%2007-12-12-10:00%2007-12-12-10:00/em

11、ail%初始化malab引擎%pi/4相位模糊问题已经解决,添加导频clear all;close all;clc;%初始化malab引擎%设置信噪比,函数将计算信号功率,并添加噪声。SNR=-3; %unit dBtict=fix(clock);disp(sprintf(The procedure starts at %4d-%02d-%02d %02d:%02d:%02d.,t);Rc = 1e3;%unit bps,code rateT= 1/Rc;%unit s,码元宽度code_len=5000;format longf0 = 80 ; %Unit Hzfe = f0+5; %uni

12、t Hz,freq errG1 = 0.5;%数值增大将会极大地增加环路捕获带宽G2 = 0.03;%影响捕获时间Kc = 0.2;%影响捕获时间带宽,影响稳态性能figure_n=1;%采样倍数RATE=128;samp_len=code_len*RATE;%B = RCOSFIR(R, N_T, RATE, T, FILTER_TYPE);A=rcosfir(1,-4 +4,RATE,T,sqrt);B=A(1:length(A);%生成相位序列,8psk,8 phasecode_info = round(7*rand(1,code_len-24);%纠正相位模糊,添加导频.有N*pi/4

13、的相位模糊现象。PILOT=zeros(1,24);PILOT(1)=0;PILOT(3)=0;code_info=code_info PILOT;%code_send =code_info;phi=1*code_info*2*pi/8+1*pi/8;% phi=pi/8:pi/4:pi*15/8;% phi=phi phi phi phi phi phi phi phi;% phi=phi phi phi phi phi phi phi phi;% phi=phi phi phi phi phi phi phi phi;code_info=exp(j*(phi)/1;%生成误差相位序列del

14、ta_theta=2*pi*fe*T*(1:samp_len)/RATE;%unit rad%生成误差相位序列% clear j;% multi_phi=ones(1,RATE);% phi=kron(phi,multi_phi);% code_info=1*exp(j*(phi+delta_theta);% code_info=cos(phi);%生成相位序列,8psk,8 phasefor i=1:RATE if i=1 inter_zero(i) = 1; else inter_zero(i) = 0; end;end;s_tmp_i = kron(real(code_info),int

15、er_zero); s_tmp_q = kron(imag(code_info),inter_zero); %成形滤波。send_wave_i=conv(s_tmp_i,B);send_wave_q=conv(s_tmp_q,B);% figure(1);% subplot(2,1,1);% plot(send_wave_i,g);% subplot(2,1,2);% plot(send_wave_q,c);send_wave=send_wave_i + j*send_wave_q;%添加频偏for i=1:code_len*RATE send_wave(i)=send_wave(i)*exp

16、(j*delta_theta(i);end;%添加白噪声。send_wave = awgn(send_wave,SNR,measured,1234,db);%添加白噪声。send_wave_i=real(send_wave);send_wave_q=imag(send_wave);%接收端匹配滤波recv_wave_i=conv(send_wave_i,B);recv_wave_q=conv(send_wave_q,B);clear j;%归一化recv_sig=(recv_wave_i+j*recv_wave_q)/max(abs(recv_wave_i+j*recv_wave_q);rec

17、v_sig_i = real(recv_sig);recv_sig_q = imag(recv_sig);%2倍采样recv_sig1=recv_sig(1:32:length(recv_sig);% %添加内插滤波.t1=1:length(recv_sig1);% %16倍内插,intpolatin_num=8;t2=1:1/intpolatin_num:length(recv_sig1);recv_sig2=interp1(t1,recv_sig1,t2,spline);recv_sig = recv_sig2;% figure(figure_n);% figure_n = figure_

18、n + 1;% inter_zero=1 0 0 0 0 0 0 0;% plot(kron(real(recv_sig1),inter_zero),*);% hold on;% plot(real(recv_sig),o);%添加内插滤波% carrier and code PLL%时间序列,每个符号鉴相一次Ts=(1:code_len*32)*T/32;%初始化carrier loop参数.nco = exp(-j * 2 * pi * f0 * Ts);Srd = zeros(1,code_len);u = zeros(1,code_len);v = zeros(1,code_len);

19、z = zeros(1,code_len);a = zeros(1,code_len);b = zeros(1,code_len);e_theta = zeros(1,code_len);e = zeros(1,code_len + 1);Uc = zeros(1,code_len + 1);accumulator = 0;%码环所用的参数G3=1;G4=0.1;Kc2=1;err_tao=zeros(1,code_len);err_tao_on_time=zeros(1,code_len);e_tao=zeros(1,code_len);accumulator2 = 0;start_diff

20、=0;for k = 1 : code_len-1 n=k*32; %取样最佳采样时刻 nco(k) = exp(-j * (2 * pi * f0 * Ts(start_diff+n+round(Kc2*err_tao(k) +Kc * Uc(k);%Kc * Uc(k) Srd(k) = recv_sig(start_diff+n+round(Kc2*err_tao(k) * nco(k); %估计接收信号a(k) + b(k) * j u(k) = sign(real(Srd(k); v(k) = sign(imag(Srd(k); z(k) = sign(abs(real(Srd(k)

21、 - abs(imag(Srd(k); a(k) = u(k) * (z(k) + (1 / sqrt(2) * (1 - z(k); b(k) = v(k) * (-1 * z(k) + (1 / sqrt(2) * (1 + z(k); %估计接收信号a(k) + b(k) * j %去除符号影响 e_theta(k) = imag( Srd(k) * (a(k) - b(k) * j); %误差累加,环路滤波 accumulator = accumulator + e_theta(k); e(k+1) = G1 * e_theta(k) + G2 * accumulator; Uc(k+

22、1)= Uc(k) + e(k+1); %码环误差提取 %数字差分 nco_e(k)=exp(-j * (2 * pi * f0 * Ts(start_diff+n+round(Kc2*err_tao(k)+8) +Kc * Uc(k); nco_l(k)=exp(-j * (2 * pi * f0 * Ts(start_diff+n+round(Kc2*err_tao(k)-8) +Kc * Uc(k); Srd_diff(k)=recv_sig(start_diff+n+round(Kc2*err_tao(k)+8) * nco_e(k)-recv_sig(start_diff+n+rou

23、nd(Kc2*err_tao(k)-8) * nco_l(k); %去除符号影响 err_tao_on_time(k)=real(Srd_diff(k) * (a(k) - b(k) * j); %误差累加,环路滤波 accumulator2 = accumulator2 + err_tao_on_time(k); err_tao(k+1) = G3*err_tao_on_time(k) + G4*accumulator2; %生成调整步进量 adj_step(k)=round(Kc2*err_tao(k+1)-round(Kc2*err_tao(k); Srd_i(k)=real(Srd(k

24、); Srd_q(k)=imag(Srd(k); % %判断象限。 %one if Srd_i(k) 0 & Srd_q(k) 0 e_code(k) = atan(Srd_q(k)/Srd_i(k); end; %two if Srd_i(k) 0 e_code(k) = pi + atan(Srd_q(k)/Srd_i(k); end; %three if Srd_i(k) 0 & Srd_q(k) 0 & Srd_q(k) 0 & e_code(k) pi/4 & e_code(k) pi/2& e_code(k) 3*pi/4& e_code(k) pi& e_code(k) 5*pi

25、/4& e_code(k) 3*pi/2& e_code(k) 3error(Too many input arguments)elseif nargin=1 f0=1;f1=2;elseif nargin=2 f1=2;endval0=ceil(f0)-f0;val1=ceil(f1)-f1;if val0 =0 | val1 =0; error(Frequency must be an integer);endif f01 | f1 fskd at 9val0=ceil(f0)-f0;怎样用matlab实现psk和fsk我在网上下载了几个程序,都运行不了,部分地方还看不懂,希望热心的高手门

26、帮忙解决一下,谢谢了!function qpskd(g,f)%For more information, visit: %ModulationQPSK%Example: g is a binay vector; f is the carrier frequency.%qpskd(1 0 1 1 0 0,2)%Author. Diego Orlando Barrag醤 Guerrero%diegokillemall%Loja (ECUADOR)%See also:% . 328&objectType=FILEif nargin 2 error(Too many input arguments);

27、elseif nargin=1 f=1;endif f1; error(Frequency must be bigger than 1);end%*-*-*-*-*-*l=length(g);r=l/2;re=ceil(r);val=re-r;if val=0; error(Please insert a vector divisible for 2);end%*-*-*-*-*-*t=0:2*pi/99:2*pi;cp=;sp=;mod=;mod1=;bit=;for n=1:2:length(g); if g(n)=0 & g(n+1)=1; die=sqrt(2)/2*ones(1,10

28、0); die1=-sqrt(2)/2*ones(1,100); se=zeros(1,50) ones(1,50); elseif g(n)=0 & g(n+1)=0; die=-sqrt(2)/2*ones(1,100); die1=-sqrt(2)/2*ones(1,100); se=zeros(1,50) zeros(1,50); elseif g(n)=1 & g(n+1)=0; die=-sqrt(2)/2*ones(1,100); die1=sqrt(2)/2*ones(1,100); se=ones(1,50) zeros(1,50); elseif g(n)=1 & g(n+1)=1; die=sqrt(2)/2*ones(1,100); die1=sqrt(2)/2*ones(1,100);

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

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com