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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【OMP信道估计】基于OMP压缩感知的信道估计算法的MATLAB仿真

發布時間:2025/4/5 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【OMP信道估计】基于OMP压缩感知的信道估计算法的MATLAB仿真 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.軟件版本

MATLAB2021a
2.本算法理論知識

3.核心代碼

clc; clear; close all; warning off; addpath 'func\'CYC = 20; for ij = 1:CYCijCYC = 20;RandStream.setDefaultStream(RandStream('mt19937ar','seed',ij));Len = 8;Nc = 64*Len;%子載波數T = 6.4e-6;TG = 1.6e-6;fLen = 512;I = 4;%導頻坐標pilot_index = [1:I:Nc];N = Nc;%總載波數[Rm,Cn] = size(pilot_index);%導頻子載波數%多普勒頻移doppler_frequency = 0.01;ts = 1e-6; %保護時間CP = Nc/Len/(T/TG);C = 2; SNR_dB = [0:2:20];err_rate = ones(C,length(SNR_dB));ERR_RATE = ones(1,length(SNR_dB));ERR_RATE2 = ones(1,length(SNR_dB));ERR_RATE3 = ones(1,length(SNR_dB));h1 = zeros(N,1);h2 = zeros(N,1);%多徑個數multipath_number = 3;delay = [0,1e-6,2e-6]/ts;%各徑延遲trms = 4e-6/ts; %多徑平均延遲var_pow = 10*log10(exp(-delay/trms));RLchannel = rayleighchan(1,doppler_frequency,delay,var_pow);RLchannel.StorePathGains = 1;test = ones(C,1);%測試向量filter(RLchannel,test);%提取瑞利信道h_RL = RLchannel.PathGains;for ii=1:Cx_Trans = randint(N,1,4);%QPSK調制X = func_QPSK_mod(x_Trans);%待傳輸信號x = func_OFDM_mod(X,fLen,CP,Nc); %信道for hh=1:multipath_number;h1(1+delay(hh))= h_RL(ii,hh);%信道的沖擊響應end%H為根據22計算得到的HH = fft(h1,fLen);%收到的信號y_r = filter(h1,1,x);for SNR_index=1:length(SNR_dB);%加噪聲y = awgn(y_r,SNR_dB(SNR_index),'measured'); %去CPy0 = y(CP+1:CP+Nc,1);Y = fft(y0);%你所要求的不太對的函數寫法est_H = ChannelEstimation(SNR_dB(SNR_index),1,delay,doppler_frequency,var_pow);%CS信道估計,H_esti為估計得到的H[H_esti,h2] = func_omp(Y,X,Nc,fLen,pilot_index,multipath_number);%計算估計得到的Ap部分Ap = abs(h2);%計算估計得到的exp部分exps = angle(h2);%估計的導頻加信號的值X_esti = Y./H_esti;x_omp_rec = func_QPSK_demod(X_esti);[err_number,err_rate(ii,SNR_index)] = symerr(x_Trans,x_omp_rec);err_num(ii,SNR_index) = sum(sum(cov(x_Trans,x_omp_rec)));mse_num(ii,SNR_index) = mse(abs(h1(1:multipath_number)-h2(1:multipath_number))); endendfor jj=1:length(SNR_dB);ERR_RATE(1,jj) = mean(err_rate(:,jj));ERR_RATE2(1,jj)= mean(err_num(:,jj));ERR_RATE3(1,jj)= mean(mse_num(:,jj));endS1 = [];S2 = [];S3 = [];if ij > 1load func\tmps.matendS1 = [S1;ERR_RATE];S2 = [S2;ERR_RATE2]; S3 = [S3;ERR_RATE3]; save func\tmps.mat S1 S2 S3 SNR_dBaddpath 'func\' endload func\tmps.mat ERR_RATEs = mean(S1,1); ERR_RATE2s = mean(S2,1); ERR_RATE3s = mean(S3,1);figure; plot(SNR_dB,ERR_RATE2s/max(ERR_RATE2s),'b-s'); hold on; xlabel('SNR'); ylabel('信號相關性'); grid on;figure; semilogy(SNR_dB,ERR_RATEs,'b-s'); hold on; xlabel('SNR'); ylabel('系統誤碼率'); grid on;figure; semilogy(SNR_dB,ERR_RATE3s,'b-s'); hold on; xlabel('SNR'); ylabel('信道估計H 估計誤差'); grid on;save R.mat SNR_dB ERR_RATEs ERR_RATE2s ERR_RATE3s%顯示原始信道和估計后的信道 ho = h1(1:multipath_number); hest = h2(1:multipath_number); ho hest

4.操作步驟與仿真結論

?5.參考文獻

[1]趙錦航, 劉健均, 周思源,等. 基于BIC停止準則的改進A*OMP信道估計算法[J]. 計算機應用與軟件, 2019, 36(5):6.

[2]朱芹, 王彪. 基于改進BOMP算法的水聲信道估計[J]. ?2022(8).

?A01-102
6.完整源碼獲得方式

方式1:微信或者QQ聯系博主

方式2:訂閱MATLAB/FPGA教程,免費獲得教程案例以及任意2份完整源碼

總結

以上是生活随笔為你收集整理的【OMP信道估计】基于OMP压缩感知的信道估计算法的MATLAB仿真的全部內容,希望文章能夠幫你解決所遇到的問題。

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