📄 fsk.m
字号:
function FSKFc=10; %载频Fs=40; %系统采样频率Fd=1; %码速率N=Fs/Fd;df=10;numSymb=25;%进行仿真的信息代码个数M=2; %进制数SNRpBit=60;%信噪比SNR=SNRpBit/log2(M);seed=[12345 54321];numPlot=15;%产生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) 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)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,Fd,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);figure(8)simbasebandex([0:1:5]);title('相干解调后误码率统计')[errorSym ratioSym]=symerr(x,z2); figure(9)simbasebandex([0:1:5]);title('非相干解调后误码率统计')%滤除高斯白噪声Delay=3;R=0.5;PropD=0; %滞后3s[yf,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(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('加入高斯白噪声后的已调信号的眼图')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -