ask的matlab代码,二进制ASK调制matlab仿真代码
function ber = sim_ASK2(snrIndB,N,flag)
% 二進制ASK調(diào)制解調(diào)仿真程序
% 輸入
% snr: 信噪比
% N: 仿真比特數(shù)
% flag:繪制調(diào)制解調(diào)波形標(biāo)志位
% 輸出
% y: 誤碼率
x = round(rand(1,N));% 產(chǎn)生信號比特
fc = 200; % 載波頻率
fs = 2000;% 采樣頻率
fb = 50; % 比特頻率
nSamples = fs/fb;% 每比特采樣數(shù)
signal_in_one_bit = cos(2*pi*fc*(0:nSamples-1)/fs);% 傳號
space_in_one_bit = zeros(1,nSamples); % 空號limitation = sum(signal_in_one_bit.^2)/2; % 判決門限
sig_ori = reshape(repmat(x,nSamples,1),1,N*nSamples); % 原始信號
%% ASK調(diào)制
y=zeros(1,nSamples*N);
for i=1:length(x)
if(x(i)==1)
y((i-1)*nSamples+1:i*nSamples) = signal_in_one_bit;
else
y((i-1)*nSamples+1:i*nSamples) = space_in_one_bit;
end
end
mod_sig = y;% 調(diào)制信號
%% 高斯信號傳輸
% rec_sig = awgn(mod_sig,snr,0); % 通過高斯信道后的接收信號
snr = 10^(0.1*snrIndB)/(fb/4);sigma = 1/sqrt(snr);
rec_sig = awgn_gauss(mod_sig,sigma);
%% ASK解調(diào)
bits_judged = zeros(1,N);
for i = 1:N % 逐比特處理
rec_seg = rec_sig((i-1)*nSamples+1:(i*nSamples));
sum_rec = rec_seg*signal_in_one_bit'; % 相關(guān)累積
if(sum_rec>=limitation) % 判決
bits_judged(i) = 1;
else
總結(jié)
以上是生活随笔為你收集整理的ask的matlab代码,二进制ASK调制matlab仿真代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 讲讲类的实例化顺序,比如父类静态数据,构
- 下一篇: TextView设置缩略显示