matlab2ask和2psk仿真实验代码
生活随笔
收集整理的這篇文章主要介紹了
matlab2ask和2psk仿真实验代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用時將F2T.m和T2F.m文件放在和主函數相同的文件目錄下即可。
F2T.m文件
function[t,st]=F2T(f,sf) df=f(2)-f(1); Fmx=(f(end)-f(1)+df); dt=1/Fmx; N=length(sf); T=dt*N; t=0:dt:T-dt; sff=fftshift(sf); st=Fmx*ifft(sff);T2F.m文件
function[f,sf]=T2F(t,st) dt=t(2)-t(1); T=t(end); df=1/T; N=length(st); f=-N/2*df:df:N/2*df-df; sf=fft(st); sf=T/N*fftshift(sf);2ASK仿真
主函數
2ask中,信號的幅度只有兩種變化狀態,分別對應二進制中的0和1,當為0時無波形,當為1時,為原信號波形。
2ASK信號一般由單極性幅值為1的方波信號和正弦信號相乘。
結果
下面是2PSK仿真代碼
clear all close all i=5;%五個點 %采樣頻率 c=100; j=i*c;%5000個點,步長 t=linspace(0,i,j); fc=2;%載波頻率,這里可以判斷一個碼元周期里面正弦波的個數, fm=fc;x=(rand(1,i)); a=round(x);%四舍五入 st=t; for n=1:iif a(n)<1for m=j/i*(n-1)+1:j/i*nst(m)=-1;endelsefor m=j/i*(n-1)+1:j/i*nst(m)=1;end end endfigure(1); subplot(221); plot(t,st);%原方波信號 axis([0,i,-1.2,1.2]); title('基帶信號');s1=cos(2*pi*fc*t);%載波s1 subplot(222); plot(t,s1); axis([0,i,-1,1]); title('載波信號');e_2psk=st.*s1;%調制信號 subplot(223); plot(t,e_2psk); axis([0,i,-1,1]); title('已調信號');at=e_2psk.*cos(2*pi*fc*t);%相干解調 at=at-mean(at);%減去直流成分之后的解調信號 %subplot(223); [f,af]=T2F(t,at);%信號變成頻域 [t,at]=lpf(f,af,2*fm);%通過低通濾波器的輸出%抽樣判決for m=0:i-1if at(1,m*c+c/2)<0for j=m*c+1:(m+1)*cat(1,j)=-1;endelsefor j=m*c+1:(m+1)*cat(1,j)=1;endend end subplot(224); plot(t,at); axis([0,i,-1.2,1.2]); title('相干解調后的波形') figure(2) plot(f,abs(af));%畫出af的頻譜 title(sprintf("采樣頻率是%d時的解調信號的頻譜",c));2psk仿真結果
原理
二進制相移鍵控(2PSK)是利用載波的相位變化來傳遞數字信息,而振幅和頻率保持不變。
2PSK信號一般可由一個雙極性全占空矩形脈沖序列與一個正弦載波相乘。
總結
以上是生活随笔為你收集整理的matlab2ask和2psk仿真实验代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有前科能否办理军人优待证呢?
- 下一篇: 找朋友并查集裸题