資源簡介
應用Matlab產生各種數字調制信號以及在AWGN下的傳輸結果。包括AM,QPSK,BPSK等,應該對初學者有一定幫助

代碼片段和文件信息
function?[smod]=generate_mod_signal(typetotal_timefcfssymbol_rate)
%?total_time?:?length?of?signal?in?seconds
%?fc?:?carrier?frequency
%?fs?:?samplling?frequency
%?symbol_rate?:?symbol?rate
%?type?:?modulation?type
????if?fs?2*fc
????????disp(‘error‘);????
????end
????????
????alpha=0.5;
????ts=1/fs;
????T=1/symbol_rate;
????t=ts:ts:total_time;
????
????N=floor(total_time*fs);
????
????a=0.85;?????????%?modulation?factor
????d=randn(1N);
????[numden]=butter(50.01);
????bs=filter(numdend);
????bs=bs/max(abs(bs));
????t=ts:ts:total_time;
????
????te=-T+2*ts:2*ts:T;
????g_t=sinc(te/T).*cos(pi*alpha*te/T)./(1-(4*alpha*te/(2*T)).^2+eps);
????
????
????switch?type
case?1??%?AM
????s=(1+a*bs).*cos(2*pi*fc*t);
????mod=1;
case?2????????%?AM-DSB
????s=bs.*cos(2*pi*fc*t);
????mod=2;
case?3????????%?AM-LSB
????s=bs.*cos(2*pi*fc*t)+imag(hilbert(bs)).*sin(2*pi*fc*t);
????mod=3;
case?4??????%?AM-USB
????s=bs.*cos(2*pi*fc*t)-imag(hilbert(bs)).*sin(2*pi*fc*t);
????mod=4;??
case?5????%?FM
????k=0.2*fc;
????int_bs(1)=0;
????for?i=1:length(t)-1;
????????int_bs(i+1)=int_bs(i)+bs(i)*ts;
????end
????s=cos(2*pi*fc*t+2*pi*k*int_bs);
????mod=5;
case?6?%?AM-FM-combined
????%?????k=0.02*fc;
????%?????int_bs(1)=0;
????%?????for?i=1:length(t)-1;
????%?????????int_bs(i+1)=int_bs(i)+bs(i)*ts;
????%?????end
????
????temps=amod(bsfcfs‘fm‘0.2*fc);
????ms=hilbert(temps).*bs;
????s=real(ms);
????mod=6;??
case?7???%?2-ASK
????d=randint(1floor(total_time*symbol_rate)2);
????dmap=modmap(dsymbol_ratefs‘ask‘);
????g_tr=repmat(g_t1length(d));
????s=dmap.*g_tr.*cos(2*pi*fc*t);
????mod=7;
case?8??%?4-ASK
????d=randint(1floor(total_time*symbol_rate)4);
????dmap=modmap(dsymbol_ratefs‘ask‘);
????g_tr=repmat(g_t1length(d));
????s=dmap.*g_tr.*cos(2*pi*fc*t);
????mod=8;???
case?9??%?16-QAM
????d=randint(1floor(total_time*symbol_rate)16);
????s_r=dmod(dfcsymbol_ratefs‘qask‘);
????g_tr=repmat(g_t1length(d));
????s=g_tr.*s_r;
????mod=9;
case?10?%?2-PSK
????d=randint(1floor(total_time*symbol_rate)2);
????s_r=dmod(dfcsymbol_ratefs‘psk‘);
????g_tr=repmat(g_t1length(d));
????s=g_tr.*s_r;
????mod=10;
case?11%?4-PSK
????d=randint(1floor(total_time*symbol_rate)4);
????s_r=dmod(dfcsymbol_ratefs‘psk‘);
????g_tr=repmat(g_t1length(d));
????s=g_tr.*s_r;
????mod=11;??
case?12?%?8-PSK
????d=randint(1floor(total_time*symbol_rate)8);
????s_r=dmod(dfcsymbol_ratefs‘psk‘);
????g_tr=repmat(g_t1length(d));
????s=g_tr.*s_r;
????mod=12;?
case?13?%?2-FSK
????d=randint(1floor(total_time*symbol_rate)2);
????s_r=dmod(dfcsymbol_ratefs‘fsk‘);
????g_tr=repmat(g_t1length(d));
????s=g_tr.*s_r;
????mod=13;?
case?14?%?4-FSK
????d=randint(1floor(total_time*symbol_rate)4);
????s_r=dmod(dfcsymbol_ratefs‘fsk‘);
????g_tr=repmat(g_t1length(d));
????s=g_tr.*s_r;
????mod=14;?
case?15?%?MFSK
????d=randint(1floor(total_time*symbol_rate)2);
?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3116??2006-05-09?09:37??generate_mod_signal.m
-----------?---------??----------?-----??----
?????????????????3334????????????????????2
- 上一篇:隨機集目標跟蹤開發包
- 下一篇:s變換的matlab程序
評論
共有 條評論