日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

4qam、16qam、64qam、256qam理论仿真曲线

發布時間:2023/12/2 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4qam、16qam、64qam、256qam理论仿真曲线 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本博文給出了4qam、16qam、64qam、256qam理論仿真曲線,畫出了EbN0 vs BER的曲線圖,可以作為大家學習的一個參考。

仿真結果:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Theoretical ber curves of different orders of QAM modulation % Author: 蘇大axing % Version: 1.2 % Date: 2022/4/3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% close all; clear all; clc%% Parameters EbN0_dB = -5:20; bits_per_symbol_for_4qam = 2; bits_per_symbol_for_16qam = 4; bits_per_symbol_for_64qam = 6; bits_per_symbol_for_256qam = 8; Nsym = 2^18; SNR_for_4qam = EbN0_dB+10*log10(bits_per_symbol_for_4qam); SNR_for_16qam = EbN0_dB+10*log10(bits_per_symbol_for_16qam); SNR_for_64qam = EbN0_dB+10*log10(bits_per_symbol_for_64qam); SNR_for_256qam = EbN0_dB+10*log10(bits_per_symbol_for_256qam);disp(' ');disp(' '); disp('***********************************'); disp('generating binary bits'); disp('***********************************'); % Generating seeds randn('state',12013) rand('state',3693) binary_bits_forqpsk = randsrc(1,Nsym*bits_per_symbol_for_4qam,[0 1]); binary_bits_for16qam = randsrc(1,Nsym*bits_per_symbol_for_16qam,[0 1]); binary_bits_for64qam = randsrc(1,Nsym*bits_per_symbol_for_64qam,[0 1]); binary_bits_for256qam = randsrc(1,Nsym*bits_per_symbol_for_256qam,[0 1]);% generating MQAM signals disp(' ');disp(' '); disp('***********************************'); disp('generating MQAM signal'); disp('***********************************');%%%%%%%%%% 4QAM paraller_for_4qam = reshape(binary_bits_forqpsk,bits_per_symbol_for_4qam,Nsym); k_4qam = 2^bits_per_symbol_for_4qam; [Output] = BitsToInteger(paraller_for_4qam); qam4_signal = qammod(Output,k_4qam,'gray','UnitAveragePower', true);% figure(1) % subplot(2,2,1); % plot(qam4_signal,'.'); % title('4QAM signal');%%%%%%%%%% 16QAM paraller_for_16qam = reshape(binary_bits_for16qam,bits_per_symbol_for_16qam,Nsym); k_16qam = 2^bits_per_symbol_for_16qam; [Output] = BitsToInteger(paraller_for_16qam); qam16_signal = qammod(Output,k_16qam,'gray','UnitAveragePower', true);% figure(1) % subplot(2,2,2); % plot(qam16_signal,'.'); % title('16QAM signal');%%%%%%%%%% 64QAM paraller_for_64qam = reshape(binary_bits_for64qam,bits_per_symbol_for_64qam,Nsym); k_64qam = 2^bits_per_symbol_for_64qam; [Output] = BitsToInteger(paraller_for_64qam); qam64_signal = qammod(Output,k_64qam,'gray','UnitAveragePower', true);% figure(1) % subplot(2,2,3); % plot(qam64_signal,'.'); % title('64QAM signal');%%%%%%%%%% 256QAM paraller_for_256qam = reshape(binary_bits_for256qam,bits_per_symbol_for_256qam,Nsym); k_256qam = 2^bits_per_symbol_for_256qam; [Output] = BitsToInteger(paraller_for_256qam); qam256_signal = qammod(Output,k_256qam,'gray','UnitAveragePower', true);% figure(1) % subplot(2,2,4); % plot(qam256_signal,'.'); % title('256QAM signal');for i=1:length(EbN0_dB) received_qam4 = awgn(qam4_signal,SNR_for_4qam(i),'measured'); received_qam16 = awgn(qam16_signal,SNR_for_16qam(i),'measured'); received_qam64 = awgn(qam64_signal,SNR_for_64qam(i),'measured'); received_qam256 = awgn(qam256_signal,SNR_for_256qam(i),'measured');%% demodulation %%%%%%%%%% 4QAM demod_signal_for_4qam = qamdemod(received_qam4,k_4qam,'gray','UnitAveragePower', true); [Output] = IntegerToBits(demod_signal_for_4qam,bits_per_symbol_for_4qam); received_Bits_for_4qam = reshape(Output,1,Nsym*bits_per_symbol_for_4qam); ErrorNumber_for_4qam = size(find(received_Bits_for_4qam-binary_bits_forqpsk),2); BER_for_4qam(i) = ErrorNumber_for_4qam/(Nsym*bits_per_symbol_for_4qam)%%%%%%%%%% 16QAM demod_signal_for_16qam = qamdemod(received_qam16,k_16qam,'gray','UnitAveragePower', true); [Output] = IntegerToBits(demod_signal_for_16qam,bits_per_symbol_for_16qam); received_Bits_for_16qam = reshape(Output,1,Nsym*bits_per_symbol_for_16qam); ErrorNumber_for_16qam = size(find(received_Bits_for_16qam-binary_bits_for16qam),2); BER_for_16qam(i) = ErrorNumber_for_16qam/(Nsym*bits_per_symbol_for_16qam)%%%%%%%%%% 64QAM demod_signal_for_64qam = qamdemod(received_qam64,k_64qam,'gray','UnitAveragePower', true); [Output] = IntegerToBits(demod_signal_for_64qam,bits_per_symbol_for_64qam); received_Bits_for_64qam = reshape(Output,1,Nsym*bits_per_symbol_for_64qam); ErrorNumber_for_64qam = size(find(received_Bits_for_64qam-binary_bits_for64qam),2); BER_for_64qam(i) = ErrorNumber_for_64qam/(Nsym*bits_per_symbol_for_64qam)%%%%%%%%%% 256QAM demod_signal_for_256qam = qamdemod(received_qam256,k_256qam,'gray','UnitAveragePower', true); [Output] = IntegerToBits(demod_signal_for_256qam,bits_per_symbol_for_256qam); received_Bits_for_256qam = reshape(Output,1,Nsym*bits_per_symbol_for_256qam); ErrorNumber_for_256qam = size(find(received_Bits_for_256qam-binary_bits_for256qam),2); BER_for_256qam(i) = ErrorNumber_for_256qam/(Nsym*bits_per_symbol_for_256qam) endfigure(2) semilogy(EbN0_dB,BER_for_4qam,'g-<','MarkerFaceColor','g','LineWidth',1);hold on; semilogy(EbN0_dB,BER_for_16qam,'m->','MarkerFaceColor','m','LineWidth',1);hold on; semilogy(EbN0_dB,BER_for_64qam,'b-^','MarkerFaceColor','b','LineWidth',1);hold on; semilogy(EbN0_dB,BER_for_256qam,'r-<','MarkerFaceColor','r','LineWidth',1);hold on; axis([-5 20 1e-5 1]); plot([-5 20],[3.8e-3,3.8e-3],'r','LineWidth',1);hold on; grid on; xlabel('E_{b}N_{0}(dB)');ylabel('BER'); legend('4qam','16qam','64qam ','256qam',...'FEC(3.8x10^-^3)','Location','SouthWest');function [Output] = BitsToInteger(input) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Convert Bits to Integer % Author: Zhongxing Tian % Version: 1.1 % Date: 2022/2/18 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[M,N] = size(input);Value = zeros(1,N);for i = 2:MValue = Value+input(i,:).*2^(i-1); % 階數從上到下(第一行最小 endValue = Value+input(1,:);Output = Value; endfunction [Output] = IntegerToBits(input,bits_per_symbol) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Convert Integer to Bits % Author: Zhongxing Tian % Version: 1.1 % Date: 2022/2/18 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[~,N] = size(input);Value = zeros(bits_per_symbol,N);for i = 1:Nk = 2^bits_per_symbol;for j = 1:bits_per_symbolif input(1,i)<k/2Value(bits_per_symbol-j+1,i) = 0;% 階數從上到下(第一行最小)k = k-2^(bits_per_symbol-j); elseValue(bits_per_symbol-j+1,i) = 1;k = k+2^(bits_per_symbol-j);endend endOutput = Value; end

總結

以上是生活随笔為你收集整理的4qam、16qam、64qam、256qam理论仿真曲线的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩人成| 国产成人视屏 | 在线免费观看高清视频 | 免费淫片 | 亚洲精品成人无码毛片 | 偷看洗澡一二三区美女 | 婷婷天堂网 | 日韩avav | 操操干干 | 蜜桃av免费 | 女同性恋一区二区三区 | 免费看欧美黑人毛片 | 老妇free性videosxx | 老熟妇高潮一区二区高清视频 | 国产精品久久久久久妇女 | 日本做爰高潮又黄又爽 | 一区二区三区欧美日韩 | 欧美日韩在线成人 | 婷婷av一区二区三区 | 日韩一区二区高清 | 黄瓜视频污在线观看 | 天堂成人| 夜夜草视频 | 精品日本一区二区三区 | 1024手机看片国产 | 日本一区二区不卡视频 | 色香蕉在线视频 | 中文字幕在线免费 | 久久久精品久久久久久 | 哈利波特3在线观看免费版英文版 | 污网址在线观看 | www.奇米.com| 日本人做爰全过程 | 韩日视频在线观看 | 2021狠狠干 | 原来神马电影免费高清完整版动漫 | 美女扒开大腿让男人桶 | 午夜视频精品 | 性欧美在线 | 国产污网站 | 曰本丰满熟妇xxxx性 | 91视频官网 | 国产影视一区二区 | 日韩精品一区二区电影 | 亚洲AV无码精品久久一区二区 | 亚洲精品日韩综合观看成人91 | 超碰人人人人人人人 | 国产精品亲子伦对白 | 欧美特级视频 | 97视频免费| av资源免费观看 | 精品人妻视频在线 | 黄色美女毛片 | 黄色wwwww | 色一情一乱一伦一区二区三区 | 综合激情av | av一区二 | 饥渴少妇伦色诱公 | 激情伊人| av在线免费观看网站 | 99久久精品国产一区色 | 麻豆tube| 亚洲va在线观看 | 少妇精品久久久一区二区三区 | 亚洲黄av | 51吃瓜网今日 | 9人人澡人人爽人人精品 | 成人免费视频网 | 日韩中文字幕一区二区三区四区 | 四虎成人精品在永久免费 | 人妻系列一区 | 91视频亚洲 | 欧美人妻精品一区二区免费看 | 久久久久亚洲国产 | 中文字幕日韩专区 | 123毛片| 日日躁夜夜躁狠狠久久av | www.黄色网址.com | 污视频免费在线观看 | 一区二区三区四区在线 | 无码精品一区二区三区在线 | 美腿丝袜亚洲综合 | 免费在线观看黄色 | 69av网| 巨茎人妖videos另类 | 亚洲在线观看视频 | 国产专区一区二区三区 | 国产素人av | 黄色91免费观看 | 精品久久久久久久久中文字幕 | 夜夜嗨av一区二区三区网页 | 激情欧美网站 | 中文字幕一区二区三区精华液 | 久久久久人妻一道无码AV | www.youjizz.com在线观看 | 色乱码一区二区三区在线男奴 | 欧美日韩在线播放 | 人人妻人人澡人人爽人人dvd | 国产九色av |