谢谢之前那位朋友提示,之前不完全,现在补充了遗漏的!要做Turbo,感觉是绕不开Dr.wuyufei的数学架构的,我在里面详细注释了。
本文作为学习用,很具有参考价值!本文在结果中详细列出了每次迭代的误码率,迭代次数可调,结果运行时间较长,这个很正常。
译码部分的log-map算法调通了,sova有代码,并没有调,下载的朋友们需要注意了!%**************Dr.wuyufei的典型Turbo系统主函数********************************%Thisscriptsimulatestheclassicalturboencoding-decodingsystem.%Itsimulatesparallelconcatenatedconvolutionalcodes.%Twocomponentrate1/2RSC(RecursiveSystematicConvolutional)componentencodersareassumed.%%Firstencoderisterminatedwithtailsbits.(Info+tail)bitsarescrambledandpassedto%thesecondencoder,whilesecondencoderisleftopenwithouttailbitsofitself.%%Randominformationbitsaremodulatedinto+1/-1,andtransmittedthroughaAWGNchannel.%Interleaversarerandomlygeneratedforeachframe.%Whileit'sUNECESSARYinourfirstversion!%%Log-MAPalgorithmwithoutquantizationorapproximationisused.%Bymakinguseofln(e^x+e^y)=max(x,y)+ln(1+e^(-abs(x-y))),%theLog-MAPcanbesimplifiedwithalook-uptableforthecorrectionfunction.%Ifuseapproximationln(e^x+e^y)=max(x,y),itbecomesMAX-Log-MAP.
2020/7/21 8:34:33 72KB turbo matlab仿真 dr.wuyufei 详细注释
1
clearall;closeall;fs=8e5;%抽样频率fm=20e3;%基带频率n=2*(6*fs/fm);final=(1/fs)*(n-1);fc=2e5;%载波频率t=0:1/fs:(final);Fn=fs/2;%耐奎斯特频率%用正弦波产生方波%==========================================twopi_fc_t=2*pi*fm*t;A=1;phi=0;x=A*cos(twopi_fc_t+phi);%方波am=1;x(x>0)=am;x(x<0)=-1;figure(1)subplot(321);plot(t,x);axis([02e-4-22]);title('基带信号');gridoncar=sin(2*pi*fc*t);%载波ask=x.*car;%载波调制subplot(322);plot(t,ask);axis([0200e-6-22]);title('PSK信号');gridon;%=====================================================vn=0.1;noise=vn*(randn(size(t)));%产生乐音subplot(323);plot(t,noise);gridon;title('乐音信号');axis([0.2e-3-11]);askn=(ask+noise);%调制后加噪subplot(324);plot(t,askn);axis([0200e-6-22]);title('加噪后信号');gridon;%带通滤波%======================================================================fBW=40e3;f=[0:3e3:4e5];w=2*pi*f/fs;z=exp(w*j);BW=2*pi*fBW/fs;a=.8547;%BW=2(1-a)/sqrt(a)p=(j^2*a^2);gain=.135;Hz=gain*(z+1).*(z-1)./(z.^2-(p));subplot(325);plot(f,abs(Hz));title('带通滤波器');gridon;Hz(Hz==0)=10^(8);%avoidlog(0)subplot(326);plot(f,20*log10(abs(Hz)));gridon;title('Receiver-3dBFilterResponse');axis([1e53e5-31]);%滤波器系数a=[100.7305];%[10p]b=[0.1350-0.135];%gain*[10-1]faskn=filter(b,a,askn);figure(2)subplot(321);plot(t,faskn);axis([0100e-6-22]);title('通过带通滤波后输出');gridon;cm=faskn.*car;%解调subplot(322);plot(t,cm);axis([0100e-6-22]);gridon;title('通过相乘器后输出');%低通滤波器%==================================================================p=0.72;gain1=0.14;%gain=(1-p)/2Hz1=gain1*(z+1)./(z-(p));subplot(323);Hz1(Hz1==0)=10^(-8);%avoidlog(0)plot(f,20*log10(abs(Hz1)));gridon;title('LPF-3dBresponse');axis([05e4-31]);%滤波器系数a1=[1-0.72];%(z-(p))b1=[0.140.14];%gain*[11]so=filter(b1,a1,cm);so=so*10;%addgainso=so-mean(so);%removesDCcomponentsubplot(324);
2016/5/8 20:09:29 589KB matlab PSK 调制与解调
1
Tensorflowimplementationof[DeepConvolutionalGenerativeAdversarialNetworks](http://arxiv.org/abs/1511.06434)whichisastabilizeGenerativeAdversarialNetworks.
2016/2/15 22:25:32 10.31MB 生成对抗网络
1
声响信号的采集、加噪,再滤波[y,Fs,bits]=wavread('D:\q.wav');%读出信号,采样率和采样位数。
y=y(:,1);%取单声道作分析yl=length(y)%求语音信号长度yy=fft(y,yl);%傅里叶变换t=[0:1/8000:4zeros(1,yl-32001)]';m=0.07*sin(10000*pi*t);%产生噪声n=y+m;%加入噪声nl=length(n)%求语音信号长度nn=fft(n,nl);%傅里叶变换figure(1);subplot(2,1,1);plot(n);title('噪声信号波形')subplot(2,1,2);plot(y);title('原信号波形')figure(2);subplot(2,1,1);plot(abs(nn));title('噪声信号频谱');subplot(2,1,2);plot(abs(yy));title('原信号频谱');sound(n,fs)
2015/4/5 18:03:24 426KB matlab IIR滤波器 课程设计报告
1
针对汽车轮胎ABS刹车系统,采用了逻辑门限值控制、PID控制以及模糊控制三种方式进行Simulink仿真设计,本文件主要提供相关设计思路及本人设计的代码
2022/9/3 16:40:31 583KB ABS刹车控制 simulink matlab
1
ASurveyofDeepMeta-Learning论文翻译原文链接:https://link.zhihu.com/?target=https%3A//arxiv.org/abs/2010.03522
2022/9/3 0:25:35 5.86MB 深度学习 元学习 人工智能
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡