找高手用c语言帮写一个qpsk调制解调的程序,QPSK调制解调完整程序配有自己的注释...
《QPSK調(diào)制解調(diào)完整程序配有自己的注釋》由會員分享,可在線閱讀,更多相關《QPSK調(diào)制解調(diào)完整程序配有自己的注釋(6頁珍藏版)》請在人人文庫網(wǎng)上搜索。
1、QPSK調(diào)制解調(diào)完整程序(配有注釋)clc;clear all;%假定接收端已經(jīng)實現(xiàn)載波同步,位同步(盲信號解調(diào)重點要解決的問題:載波同步(costas環(huán)(未見到相關代碼),位同步(Gardner算法(未見相關代碼),幀同步)% carrier frequencyfor modulation and demodulationfc=5e6;%QPSK transmitterdata=5000; %碼數(shù)率為5MHZ %原碼個數(shù)rand_data=randn(1,5000);fori=1:dataif rand_data(i)=0.5rand_data(i)=1;elserand_data(i)=0。
2、;endend%seriel to parallel %同時單極性碼轉為雙極性碼fori=1:dataif rem(i,2)=1ifrand_data(i)=1I(i)=1;I(i+1)=1;elseI(i)=-1;I(i+1)=-1;endelseif rand_data(i)=1Q(i-1)=1;Q(i)=1;elseQ(i-1)=-1;Q(i)=-1;endendend% zero insertion ,此過程稱為成形。成形的意思就是實現(xiàn)由消息到波形的轉換,以便發(fā)射,脈沖成形應該是在基帶調(diào)制之后。zero=5; %samplingrate25M HZ,明白了,zero為過采樣率。它等于 。
3、采樣率fs/碼速率。fori=1:zero*data % 采樣點數(shù)目=過采樣率*原碼數(shù)目if rem(i,zero)=1Izero(i)=I(fix(i-1)/zero)+1);Qzero(i)=Q(fix(i-1)/zero)+1);elseIzero(i)=0;Qzero(i)=0;endend%pulse shape filter, 接著,將進行低通濾波,因為 隨著傳輸速率的增大,基帶脈沖的頻譜將變寬%如果不濾波(如升余弦濾波)進行低通濾波,后面加載頻的時候可能會出現(xiàn)困難。%平方根升余弦濾波器% psf=rcosfir(rf,n_t,rate,fs,sqrt) rate:過采樣率,rf:。
4、滾降因子,n_t:濾波器階數(shù),fs:采樣率%用在調(diào)制或發(fā)送之前,用在解調(diào)或接受之后,用來降低過采樣符號流帶寬并不引發(fā)ISI(碼間串擾)NT=50;N=2*zero*NT; % =500fs=25e6;rf=0.1;psf=rcosfir(rf,NT,zero,fs,sqrt);% psf大小為500Ipulse=conv(Izero,psf);Qpulse=conv(Qzero,psf);%為什么數(shù)字信號傳輸也要過采樣,成形濾波?%答:過采樣的數(shù)字信號處理起來對低通濾波器的要求相對較低,如果不過采樣,濾波的時候濾波器需要很陡峭,指標會很嚴格%成形濾波的作用是保證采樣點不失真。如果沒有它,那信號。
5、在經(jīng)過帶限信道后,眼圖張不開,ISI非常嚴重。成形濾波的位置在基帶調(diào)制之后。%因為經(jīng)成形濾波后,信號的信息已經(jīng)有所損失,這也是為避免ISI付出的代價。換句話說,成形濾波的位置在載波調(diào)制之前,僅挨著載波調(diào)制。%即:(發(fā)送端)插值(采樣)-成形-濾波(LPF)-加載頻(載波調(diào)制)-加噪聲至(接收端)乘本振-低通-定時抽取-判決。%modulationfor i=1:zero*data+N %采樣點數(shù)目改變 (因為卷積的緣故)t(i)=(i-1)/(fs);%這里因為假設載頻與碼速率大小相等,所以用載頻fc乘以過采樣率=采樣率。Imod(i)=Ipulse(i)*sqrt(2)*cos(2*pi*f。
6、c*t(i);Qmod(i)=Qpulse(i)*(-sqrt(2)*sin(2*pi*fc*t(i);endsum=Imod+Qmod;%QPSKreceiver%demodulationfor i=1:zero*data+NIdem(i)=sum(i)*sqrt(2)*cos(2*pi*fc*t(i);Qdem(i)=sum(i)*(-sqrt(2)*sin(2*pi*fc*t(i);end%matchedfiltermtf=rcosfir(rf,NT,zero,fs,sqrt);Imat=conv(Idem,mtf);Qmat=conv(Qdem,mtf);%data selection。
7、fori=1:zero*dataIsel(i)=Imat(i+N);Qsel(i)=Qmat(i+N);end%sampler %提取碼元for i=1:dataIsam(i)=Isel(i-1)*zero+1);Qsam(i)=Qsel(i-1)*zero+1);end%decisionthresholdthreshold=0.2;fori=1:dataif Isam(i)=thresholdIfinal(i)=1;elseIfinal(i)=-1;endif Qsam(i)=thresholdQfinal(i)=1;elseQfinal(i)=-1;endend%parallel to s。
8、erialfor i=1:dataif rem (i,2)=1if Ifinal(i)=1final(i)=1;elsefinal(i)=0;endelseifQfinal(i)=1final(i)=1;elsefinal(i)=0;endendend% 繪圖figure(1)plot(20*log(abs(fft(rand_data);axis(0data-40100);grid on;title(spectrumof input binary data);figure(2)subplot(221);plot(20*log(abs(fft(I);axis(0 data -40 140);gr。
9、idon;title(spectrum of I-channel data);subplot(222);plot(20*log(abs(fft(Q);axis(0data -40140);gridon;title(spectrum of Q-channel data);subplot(223);plot(20*log(abs(fft(Izero);axis(0 zero*data-20140);gridon;title(spectrum of I-channel after zero insertion);subplot(224);plot(20*log(abs(fft(Qzero);axis。
10、(0zero*data -20 140);gridon;title(spectrum of Q-channel after zero insertion);figure(3);subplot(221);plot(psf);axis(200 300 -0.2 0.6);title(time domain response of pulse shaping filter);gridon;subplot(222);plot(20*log(abs(fft(psf);axis(0N -350 50);grid on;title(transferfunctionof pulseshaping filter。
11、);subplot(223);plot(20*log(abs(fft(Ipulse);axis(0zero*data+N-250 150);grid on;title(spectrum of I-channel afterimpulse shaping filter);subplot(224);plot(20*log(abs(fft(Qpulse);axis(0zero*data+N -250150);gridon;title(spectrum of Q-channelafter pluse shapingfilter);figure(4)subplot(211);plot(20*log(ab。
12、s(fft(Imod);axis(0zero*data+N-250 150);gridon ;title(spectrum of I-channelafter modulation);subplot(212);plot(20*log(abs(fft(Qmod);axis(0zero*data+N-250 150);gridon;title(spectrumofQ-channel after modulation);figure(5)subplot(221);plot(20*log(abs(fft(Idem);axis(0 zero*data-200150);grid on;title(spec。
13、trumof I-channel afterdemodulation);subplot(222);plot(20*log(abs(fft(Qdem);axis(0zero*data+N-200150 );gridon;title(spectrum of Q-channel after demodulation);subplot(223);plot(20*log(abs(fft(Imat);axis(0zero*data-400200);gridon;title(spectrumof I-channelaftermatched filter);subplot(224);plot(20*log(a。
14、bs(fft(Qmat);axis(0zero*data-400200);gridon;title(spectrum ofQ-channel after matched filter);figure(6)subplot(221);plot(20*log(abs(fft(Isam);axis(0 data-40150);gridon;title(spectrum of I-channel after sampler);subplot(222);plot(20*log(abs(fft(Qsam);axis(0data -40150 );gridon;title(spectrum of Q-chan。
15、nel aftersampler);subplot(223);plot(20*log(abs(fft(Ifinal);axis(0 data-40150);grid on;title(spectrum ofI-channel afterdecision threshold);subplot(224);plot(20*log(abs(fft(Qfinal);axis(0 data-40150);grid on;title(spectrum ofQ-channel afterdecision threshold);figure(7)plot(Isel,Qsel);axis(-1.6 1.6-1.61.6);gridon;title(constellationofmatchedfilteroutput);figure(8)plot(Isam,Qsam,X);axis(-1.21.2 -1.21.2);grid on;title(constellationofsampler);figure(9)plot(20*log(abs(fft(final);axis(0data0100);gridon;title(aspectrumoffinalreceivedbinarydata。
總結
以上是生活随笔為你收集整理的找高手用c语言帮写一个qpsk调制解调的程序,QPSK调制解调完整程序配有自己的注释...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java9特性_96.java基础10(
- 下一篇: java实验指导书(实验四)答案_jav