📄 mfsk.m
字号:
% =============================================
% ----------------BP_MFSK_simulation----------
% --------------频移键控信号仿真程序
% --------------程序内部可设定码速率等参数
% =============================================
clear all;
Fc=20;%载频
Fd=1;%码速率
Fs=80; %--------系统采样频率 !!!!!!!!
tone=10;
M=4 ; %---------MFSK-------
numSymb=16;%进行仿真的信息代码个数
x=randsrc(numSymb,1,[0:M-1]);%---------产生25个二进制随机码
y=dmod(x,Fc,Fd,Fs,'fsk',M,tone);
numModPlot=numSymb*Fs;%------注意调制的点数---------
t=[0:numModPlot-1]'./Fs;
figure(1)
subplot(411);
plot(t,y(1:length(t)),'b-');
axis([min(t) max(t) -1.5 1.5]);
title('调制后的信号');
xlabel('Time');
ylabel('Amplitude');
n=length(y);
Y=fft(y)/n;
f=(-Fs/2:Fs/n:Fs/2-Fs/n);
subplot(4,1,2);
plot(f,fftshift(abs(Y)));
title('MFSK信号FFT频谱');
xlabel('Frequency');
ylabel('Amplitude(归一化后)');
%----------------------加高斯白噪声---------------------
SNRperbit=5;
adjSNR=SNRperbit-10*log10(Fs/Fd)+10*log10(log2(M));
y1=awgn(y,adjSNR, 'measured', [], 'dB');
subplot(413);
plot(t,y1(1:length(t)),'r');
title('MFSK信号加高斯白噪声信号');
xlabel('Time');
ylabel('Amplitude');
Y1=fft(y1)/n;
subplot(4,1,4);
plot(f,fftshift(abs(Y1)));
title('MFSK信号加高斯白噪声信号FFT频谱');
xlabel('Frequency');
ylabel('Amplitude(归一化后)');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -