function FSK
Fc=10; %載頻
Fs=40; %系統采樣頻率
Fd=1; %碼速率
N=Fs/Fd;
df=10;
numSymb=25;%進行仿真的資訊代碼個數
M=2; %進制數
SNRpBit=60;%信噪比
SNR=SNRpBit/log2(M);
seed=[12345 54321];
numPlot=25;
%產生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');%在已調信號中加入高斯白噪聲
z1=ddemod(y,Fc,Fd,Fs,'fsk',M,df);
%帶輸出波形的相干M元頻移鍵控解調
figure(3)
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('相干解調后的信號原序列比較')
z1=ddemod(y,Fc,Fd,Fs,'fsk',M,df);
%帶輸出波形的相干M元頻移鍵控解調
figure(4)
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');
%非相干解調
z2=ddemod(y,Fc,Fd,Fs,'fsk/noncoh',M,df);
%帶輸出波形的非相干M元頻移鍵控解調
figure(5)
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');
%誤碼率統計
[~, ratioSym]=symerr(x,z1);
figure(6)
simbasebandex([0:1:5]);
title('相干解調后誤碼率統計')
[~, ratioSym]=symerr(x,z2);
figure(7)
simbasebandex([0:1:5]);
title('非相干解調后誤碼率統計')
uj5u.com熱心網友回復:
樓主您好我運行程式時發現運行不了,
出現未定義simbasebandex 的提示
uj5u.com熱心網友回復:
dmod函式還能用嗎uj5u.com熱心網友回復:
這個dmod函式樓主能發一下嗎?轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/171471.html
標籤:其他開發語言
上一篇:matlab一個混亂的問題
下一篇:Go 型別繼承
